Convertir des emails via des serveurs web
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Mail Converter X est un SDK côté serveur qui convertit les e-mails MSG, EML et MBOX vers PDF, DOC, RTF, HTML, XHTML, TXT, TIFF, JPEG, EML, MSG et PST — sans Microsoft Outlook, MAPI ni aucun composant Office Interop sur le serveur. Il fonctionne en silence : aucune interface graphique, aucune boîte de dialogue, aucune fenêtre contextuelle. Total Mail Converter X est livré avec un binaire en ligne de commande et une interface ActiveX/COM, ce qui permet de l'intégrer dans ASP, PHP, .NET, Python, Ruby, Java et tout autre back-end compatible COM.
Ce que fait cette édition Standard :
-atemplate ; les pièces jointes ZIP sont décompressées avec -uattach
-HeadText / -FootText) pour l'e-discovery juridique
-mp, -up, -perm)
-rfcheaders)
-Recurse + -kfs pour traiter l'arborescence complète d'une boîte aux lettres
Standard ou Pro X : l'édition Standard enregistre les pièces jointes dans leur format d'origine à côté du PDF de l'e-mail. La version Pro avec -docs convertit les pièces jointes (DOCX, XLSX, images, PDF) dans le format cible et les fusionne dans le même fichier de sortie que le corps du message. Choisissez Standard pour l'archivage simple d'une boîte aux lettres ; choisissez Pro pour les livrables d'e-discovery où la sortie attendue est un PDF unique et autonome par fil de discussion.
Essayez-le gratuitement (période d'évaluation de 30 jours, sans limitation) et vérifiez par vous-même qu'il vaut bien son prix.
Quelques-unes des conversions de formats actuellement prises en charge :
|
|
|
(inclut un essai GRATUIT de 30 jours)
(seulement $950.00)
string src = @"C:\test\Source.eml";
string dest = @"C:\test\Dest.pdf";
var cnv = new MailConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\Mail.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\MailConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.msg";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"\"{srcPath}\" \"{outPath}\" -cPDF";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Conversion complete.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("MailConverter.MailConverterX")
C.Convert "c:\test\source.eml", "c:\test\dest.pdf", "-cPDF -log c:\mail.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("MailConverter.MailConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.eml", "C:\www\ASP", "-cpdf -log c:\mail.log")
set C = nothing
$src="C:\\test\\test.msg";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("MailConverter.MailConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\Mail.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('MailConverter.MailConverterX')
src = "C:\\test\\test.eml"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Mail.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("MailConverter.MailConverterX")
src = "C:\\test\\test.eml"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Mail.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('MailConverter.MailConverterX');
c.Convert('c:\test\source.eml', 'c:\test\dest.pdf', '-cPDF -log c:\test\Mail.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("MailConverter.MailConverterX");
c.Convert("C:\\test\\source.msg", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.eml"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'MailConverter.MailConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\Mail.log"); print $c->ErrorMessage if -e $dest;
"Je travaille pour Freeland Cooper & Foreman LLP et je m'occupe actuellement du projet pour lequel nous avons acheté Total Mail Converter X. Nous l'avons acquis pour fusionner un grand nombre de fichiers .msg au format .pst, et jusqu'à présent je suis très satisfait des résultats : il est fiable, hautement fonctionnel et facile à utiliser."
Max Canin
www.freelandlaw.com
"Nous utilisons SharePoint comme bibliothèque de documents et y accédons via UNC. Je me sers de Total Mail Converter X pour archiver les e-mails. J'utilise la ligne d'objet comme partie du nom de fichier résultant, mais cela pose un problème : SharePoint n'autorise pas certains caractères dans les noms de fichiers. Je me demandais s'il serait possible d'ajouter une option en ligne de commande pour supprimer les caractères non autorisés afin de respecter les chemins UNC SharePoint."
Shane Adam
Systems Analyst & Developer, http://eigltd.com
"Nous archivons les exports de boîtes aux lettres des employés qui quittent l'entreprise. Les clients nous envoient des dumps PST/MBOX ; notre pipeline transforme chacun d'eux en un dossier de PDF autonomes avec les en-têtes RFC-822 complets conservés pour examen judiciaire. Total Mail Converter X avec -Recurse -kfs -rfcheaders -combine est le moteur. Six ans en production, débit d'environ 5 000 messages par heure sur notre matériel. Aucune trace d'Outlook dans le pipeline."
Bartosz K.
Senior Backend Developer at a compliance-archive vendor
"Les tickets contiennent des fichiers EML en pièce jointe ; l'équipe support a besoin de copies PDF pour la trace du ticket. Total Mail Converter X plus Total Folder Monitor : les tickets déposent leurs EML dans un dossier d'entrée, le convertisseur les traite, l'outil de support récupère les PDF. Pagination Bates propre grâce à -HeadText/-FootText, aucune intervention manuelle. Sans interface sur Windows Server Core, sans Outlook, sans mauvaise surprise de licence."
Soledad O.
DevOps Engineer at a customer-support SaaS
"Nous avons intégré Total Mail Converter X à notre produit de gestion documentaire sous la licence Royalty-Free. Les frais uniques par projet représentaient une fraction de ce qu'Aspose.Email demandait sur un abonnement par développeur. Notre installateur déploie et enregistre l'ActiveX, notre application l'appelle directement, l'utilisateur final ne voit que notre interface. La limitation 32 bits de l'ActiveX nous a coûté deux jours de retravail du pipeline, mais le support a réagi rapidement quand nous avons demandé des solutions de contournement."
Niko T.
Independent Software Vendor
Total Mail ConverterX est livré avec MailConverterX.exe, un binaire console que vous pouvez piloter depuis des scripts, des tâches planifiées, des workers d'archivage de courrier ou tout service backend. Le jeu d'options correspond à l'interface graphique MailConverter.exe ; pour la référence complète, consultez la documentation en ligne de commande. Les recettes ci-dessous couvrent les cas dont nos clients SDK travaillant avec des boîtes aux lettres MSG, EML et MBOX nous parlent le plus souvent.
L'appel le plus simple possible — un message Outlook en entrée, un PDF en sortie.
MailConverterX.exe "C:\mailbox\invoice.msg" "C:\out\invoice.pdf" -cPDF
Traitez tout un dossier de fichiers EML exportés depuis Thunderbird, Apple Mail ou tout client IMAP et déposez les PDF dans un répertoire de sortie frère.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF
Échangez le masque pour *.msg ou *.mbox pour choisir un format source différent, ou -cDOC / -cTXT / -cTIFF pour choisir une cible différente.
Un export Outlook vit rarement dans un seul dossier plat — vous obtenez généralement Inbox, Sent, Archive et des dizaines de sous-dossiers. -Recurse parcourt les sous-répertoires ; -kfs recrée la même arborescence côté sortie au lieu d'aplatir tout dans un seul seau.
MailConverterX.exe "C:\export\Mailbox\*.msg" "C:\out\Mailbox\" -cPDF -Recurse -kfs
Pour la e-discovery et les dossiers d'affaires, vous voulez généralement un PDF par affaire, pas un par e-mail. -combine fusionne les messages correspondants en un seul PDF dans l'ordre des fichiers source ; -sort date les organise chronologiquement.
MailConverterX.exe "C:\cases\Acme\*.eml" "C:\out\Acme-thread.pdf" -cPDF -combine -sort date
L'édition Standard convertit le corps de l'e-mail et écrit les pièces jointes originales sur disque à côté du document de sortie. -attach active l'extraction des pièces jointes ; -atemplate contrôle le motif de nom de fichier de pièce jointe.
MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -attach -atemplate "[mail]_[attach_index]_[attach]"
Ajoutez -uattach pour décompresser automatiquement les pièces jointes ZIP, ou -images pour incorporer les images en ligne directement dans le corps du PDF.
Par défaut, chaque champ d'en-tête est exporté. Pour produire un PDF propre prêt à imprimer qui ne montre que From, Date et Subject — pas de CC, pas de BCC, pas d'en-têtes de transport — désactivez explicitement les champs indésirables.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -sender -date -subject -cc:off -bcc:off -rcpt:off
Ajoutez -rfcheaders si vous avez besoin que les en-têtes complets de transport RFC-822 soient préservés pour examen forensique.
Tamponnage de style Bates pour les transferts de litige : un pied de page avec numéro de page courant sur chaque page, plus un en-tête avec la date de production. [page] et [date] sont les espaces réservés intégrés.
MailConverterX.exe "C:\cases\Acme\*.msg" "C:\out\Acme.pdf" -cPDF -combine -sort date -HeadText "ACME-PROD [date]" -HeadAlign right -FootText "Page [page]" -FootAlign center
Standard pour l'envoi de correspondance privilégiée à un avocat adverse : un mot de passe propriétaire verrouille les autorisations d'édition/impression, un mot de passe utilisateur contrôle l'ouverture du fichier, et -perm accorde exactement les droits que vous autorisez.
MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Copy
Une fois que MailConverterX.exe tourne en service ou tâche planifiée, le seul moyen de savoir ce qui s'est passé est le journal. -verbosity detail écrit une ligne par fichier ; -logmode append conserve l'historique entre les exécutions ; -fo écrase silencieusement la sortie précédente au lieu de s'arrêter sur les collisions.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -log "C:\logs\mailconv.log" -verbosity detail -logmode append -fo
Lorsqu'un worker d'archivage de courrier écrit un fichier de file d'attente et que le convertisseur le consomme, vous ne voulez pas encoder les chemins de fichiers dans la ligne de commande elle-même. -list lit les masques de fichiers (un par ligne) depuis un fichier texte.
MailConverterX.exe -list "C:\queues\mail-batch.txt" "C:\out\" -cPDF -log "C:\logs\mailconv.log"
Mis à jour Tue, 05 May 2026
(seulement $950.00)
-docs, qui convertit chaque pièce jointe prise en charge (Word, Excel, PowerPoint, images, PDF) au format cible et les fusionne dans le même PDF de sortie que le corps de l'e-mail. Choisissez Standard pour l'archivage simple ; choisissez Pro pour les livrables d'e-discovery où la sortie est un PDF unique et autonome par fil de discussion.new COM("MailConverter.MailConverterX") en PHP, new MailConverterX() en .NET, win32com.client.Dispatch("MailConverter.MailConverterX") en Python, WIN32OLE.new('MailConverter.MailConverterX') en Ruby. Vous pouvez aussi appeler le binaire en ligne de commande MailConverterX.exe depuis n'importe quel processus, planificateur ou script shell. Le streaming PDF direct via ConvertToStream est également disponible pour les réponses web ASP/PHP.-c <FORMAT> pour choisir la cible.-attach pour activer l'extraction des pièces jointes. Par défaut, elles sont placées dans le même dossier que le PDF de sortie. Utilisez -atemplate "[mail]_[attach_index]_[attach]" pour définir un modèle de nommage personnalisé basé sur les métadonnées du message et de la pièce jointe. Ajoutez -uattach pour décompresser automatiquement les pièces jointes ZIP afin que leur contenu soit enregistré avec le reste. Ajoutez -images pour intégrer les images en ligne directement dans le corps du PDF au lieu de les enregistrer comme fichiers.-mp "owner-pwd" définit le mot de passe propriétaire (qui contrôle les autorisations) ; -up "user-pwd" verrouille l'ouverture du fichier ; -perm accepte toute combinaison de Print, HighResPrint, Copy, Modify, Annotation, FormFill. Pour le tampon Bates, utilisez -HeadText/-FootText avec les espaces réservés [page], [date], [time] et -HeadAlign/-FootAlign pour positionner le texte. Combiné avec -combine -sort date, cela produit un PDF unique avec tampon Bates pour tout un fil d'e-mails.Téléchargez la version d'essai gratuite et convertissez vos fichiers en quelques minutes.
Aucune carte de crédit ou email requis.
Contactez-nous. Nous améliorerons volontiers notre convertisseur de courrier pour qu'il réponde parfaitement à vos besoins. La personnalisation est souvent gratuite pour nos clients.
Docker docker run -p 5000:5000 tdhster/mailconverter-api