«
»
Thunderbird vers EML

Thunderbird vers EML

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,[« <",">« ], » »)