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 Faux
Remarque : ChaineVersNomDeFichier est une fonction du framework Betula proposé sur ce site, sinon vous pouvez utiliser :
Remplace(sSujet,[« <« , »> »], » »)