(Français) Thunderbird vers EML

Sorry, this entry is only available in French. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

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,[“<",">“],””)

Ce site n'a aucun lien avec la société PC SOFT®. Les marques "WinDev" et "WebDev" sont des marques déposées de la société PC SOFT.