Thunderbird, logiciel de messagerie gratuit, reste très populaire. Mais qu’en est-il quand on veut migrer vers d’autres logiciels ?
L’export des courriels de Thunderbird est possible soit par l’option [Sauver], soit via des plugins (ex:ImportExportTools) et même par glisser/déposer.
Que faire alors quand on a juste les fichiers (sans Thunderbird) venant d’une sauvegarde par exemple ou qu’il faut sauver certains messages et pas d’autres ? Pas le choix de faire un petit bout de programme. Voici donc une solution simple et efficace qui ne demande qu’à être personnalisée à votre besoin !
//Export de la corbeille de Thunderbird (car elle contient habituellement moins de messages, pratique pour faire un test)
SI Thunderbird2EML("D:\Temp\Trash","D:\Temp\CourrielsTrash") ALORS Info("fin")PROCÉDURE Thunderbird2EML(sFichierThunderbird est une chaîne, LOCAL sRépertoireEML est une chaîne) : booléen
SI fFichierExiste(sFichierThunderbird) ALORS
SI sRépertoireEML="" ALORS sRépertoireEML=fExtraitChemin(sFichierThunderbird,fDisque+fRépertoire)
SI fRepCrée(sRépertoireEML) ALORS
fSupprime(sRépertoireEML+["\"]+"*.EML") //nettoyage du répertoire destination
sUnCourriel,sSujet sont des chaînes
sCourriels est une chaîne = fChargeTexte(sFichierThunderbird)
POUR TOUTE CHAÎNE sCourriel DE sCourriels SEPAREE PAR RC
SI Gauche(sCourriel,7)="From - " OU sCourriel="From " ALORS
SI sSujet>"" _ET_ sUnCourriel>"" ALORS
SI PAS fSauveTexte(sRépertoireEML+["\"]+ChaineVersNomDeFichier(sSujet)+".eml",sUnCourriel) ALORS
Erreur(ErreurInfo());RENVOYER Faux
FIN
FIN
sUnCourriel="";sSujet=""
SINON
SI Gauche(sCourriel,12)="Message-ID: " ALORS sSujet=Milieu(sCourriel,13)
FIN
sUnCourriel+=(sUnCourriel = "" ? "" SINON RC)+sCourriel
FIN
//sauvegarde du dernier courriel du fichier
SI sSujet>"" _ET_ sUnCourriel>"" ALORS
SI PAS fSauveTexte(sRépertoireEML+["\"]+ChaineVersNomDeFichier(sSujet)+".eml",sUnCourriel) ALORS
Erreur(ErreurInfo());RENVOYER Faux
FIN
FIN
RENVOYER Vrai
SINON
Erreur(ErreurInfo())
FIN
SINON
Erreur("Le fichier Thunderbird n'existe pas")
FIN
RENVOYER FauxRemarque : ChaineVersNomDeFichier est une fonction du framework Betula proposé sur ce site, sinon vous pouvez utiliser :
Remplace(sSujet,[« <« , »> »], » »)