Convierte archivos MSG y EML en servidores web
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Mail Converter Pro X es un SDK del lado del servidor que convierte correos MSG y EML a PDF, PDF/A, DOC, RTF, TXT, HTML, TIFF y JPEG — con los archivos adjuntos renderizados al mismo formato de destino y combinados en un único archivo de salida, sin necesidad de Microsoft Outlook en el servidor. Funciona en modo headless: sin interfaz gráfica, sin diálogos, sin ventanas emergentes. Total Mail Converter Pro X se entrega tanto con un binario de línea de comandos como con una interfaz ActiveX/COM, por lo que se integra en ASP, PHP, .NET, Python, Ruby, Java y cualquier otro backend compatible con COM.
Lo que diferencia a la variante Pro de la edición X regular es el conmutador -docs. Con -docs activo, cada archivo adjunto compatible — documentos de Word, hojas de cálculo, imágenes, PDFs — se convierte al mismo formato de destino (por ejemplo PDF) y se combina en el PDF del mensaje o se guarda como documentos separados junto a él. El destinatario abre un solo archivo y ve el cuerpo del correo más cada adjunto en orden de lectura. Tipos de adjuntos de entrada compatibles:
-uattach
Más allá de la conversión de adjuntos, Total Mail Converter Pro X cubre el escenario completo de e-discovery y retención documental: salida en PDF/A (-pdfa), firma digital con certificados X.509 (-PFXFile/-PFXPass), inclusión de cabeceras de transporte RFC-822 (-rfcheaders), indexación de metadatos de adjuntos (-iattach), sellado de cabecera/pie de página tipo Bates en todo el documento combinado, PDFs protegidos por contraseña con marcadores de permisos individuales, y recursión por carpetas que replica la estructura original del buzón (-Recurse -kfs).
La alta velocidad de conversión y el procesamiento por lotes hacen que el proceso resulte sencillo y libre de tedio — decenas de miles de mensajes con adjuntos por ejecución nocturna es lo habitual. Pruébelo gratis (período de prueba de 30 días, sin limitaciones) y compruebe que merece su precio.
Algunas de las conversiones de formato actualmente compatibles:
|
|
|
(incluye 30 días de prueba GRATUITA)
(solo $1900.00)
string src = @"C:\test\Source.eml";
string dest = @"C:\test\Dest.pdf";
var cnv = new MailConverterX();
cnv.Convert(src, dest, "-cPDF -attach -docs -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 -attach -docs";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("sleep...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversion complete successfully.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("MailConverterPro.MailConverterX")
C.Convert "c:\test\source.eml", "c:\test\dest.pdf", "-cPDF -attach -docs -log c:\Mail.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("MailConverterPro.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 -attach -docs -log c:\html.log")
set C = nothing
$src="C:\\test\\test.msg";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("MailConverterPro.MailConverterX");
$c->convert($src,$dest, "-cPDF -attach -docs -log c:\\Mail.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('MailConverterPro.MailConverterX')
src = "C:\\test\\test.eml"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -attach -docs -log c:\\test\\Mail.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("MailConverterPro.MailConverterX")
src = "C:\\test\\test.eml"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -attach -docs -log c:\\test\\Mail.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('MailConverterPro.MailConverterX');
c.Convert('c:\test\source.eml', 'c:\test\dest.pdf', '-cPDF -attach -docs -log c:\test\Mail.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("MailConverterPro.MailConverterX");
c.Convert("C:\\test\\source.msg", "C:\\test\\dest.pdf", "-cPDF -attach -docs");
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 'MailConverterPro.MailConverterX'; $c->convert($src, $dest, "-cPDF -attach -docs -log c:\\test\\Mail.log"); print $c->ErrorMessage if -e $dest;
"Estamos muy contentos con Total Mail Converter Pro. Lo usamos para convertir alrededor de 20 mil correos a PDF; lo importante para nosotros era su capacidad de convertir los adjuntos del correo dentro del PDF de destino. Al convertir los 20 mil mensajes, solo una docena falló por adjuntos ilegibles. Nuestra sugerencia de mejora: cuando un adjunto falla, no omitir todo el archivo de correo, sino convertir los demás adjuntos y completar el PDF sin el único adjunto defectuoso. Sigan con el buen trabajo."
Manuel Schlief
www.darag.de
"Hacemos e-discovery para abogados externos. Los clientes nos envían exportaciones PST; nuestro pipeline convierte cada PST en un PDF por caso, con cada correo más cada adjunto convertido en orden de lectura y con las cabeceras RFC conservadas. Total Mail Converter Pro X con -docs -iattach -rfcheaders es el motor. Unos 8.000 mensajes por hora en nuestro hardware, incluyendo el renderizado de adjuntos DOCX/XLSX. Cinco años en producción y ningún fallo que podamos achacar al conversor."
Henrik J.
Senior Backend Developer at a legal-tech vendor
"Los archivos de comunicación con pacientes deben llegar a nuestro sistema de gestión documental como PDF/A con firmas digitales X.509 — requisito de cadena de custodia de HIPAA. -pdfa más -PFXFile/-PFXPass más -SignLoc/-SignCon/-SignRes cubren todo el escenario de firma en una sola llamada al binario. Reemplazamos un pipeline Java/iText que necesitaba tres librerías separadas para producir el mismo resultado. Headless sobre Windows Server Core, sin Outlook, sin sorpresas."
Renata B.
DevOps Engineer at a healthcare records platform
"Integramos Total Mail Converter Pro X en nuestro producto de archivado de cumplimiento bajo la Royalty-Free License. La tarifa única por proyecto fue una fracción de lo que habrían costado Aspose.Email más Aspose.Words más Aspose.PDF como pila. Nuestro instalador despliega y registra el ActiveX, nuestra aplicación lo invoca directamente y los usuarios finales solo ven nuestra interfaz. La limitación de 32 bits del ActiveX nos costó un par de días de retrabajo del pipeline, pero el soporte respondió rápido cuando preguntamos por soluciones alternativas."
Daichi M.
Independent Software Vendor
"Los clientes nos envían exportaciones nocturnas EML desde sus tenants corporativos de Exchange. Nuestro pipeline de workers combina cada hilo en un único PDF sellado con Bates por carpeta de caso. -Recurse -kfs preserva la jerarquía de carpetas del buzón en la salida, y -HeadText/-FootText aplican la etiqueta de caso y la paginación tanto en las páginas del mensaje como en las de los adjuntos. Determinista entre ejecuciones, lo cual importa para la revisión legal. La CLI es estable y está bien documentada."
Aleksandra W.
Lead .NET Developer at a corporate-archive provider
Total Mail Converter Pro X incluye MailConverterX.exe, un binario de consola que puedes controlar desde scripts, tareas programadas, trabajadores de archivado de correo o cualquier servicio de backend. Lo que distingue a la variante Pro es la opción -docs: en lugar de simplemente guardar los adjuntos junto al correo, Pro convierte documentos de Word, hojas de cálculo, imágenes y otros adjuntos al formato de destino y los fusiona en el mismo archivo de salida que el cuerpo del mensaje. El conjunto de opciones coincide con la GUI MailConverter.exe; para la referencia completa consulta la documentación de la línea de comandos. Las recetas siguientes se centran en escenarios de manejo de adjuntos que solo soporta la edición Pro.
El flujo Pro emblemático. -docs indica al convertidor que renderice cada adjunto compatible a PDF; con -sdocs:off implícito (por defecto), todas las páginas renderizadas se anexan al PDF del mensaje. El destinatario abre un único archivo y ve el correo más todos los adjuntos Word, Excel, imagen y PDF en orden de lectura.
MailConverterX.exe "C:\mail\incoming\*.msg" "C:\out\" -cPDF -attach -docs
La misma conversión, pero -sdocs escribe cada adjunto convertido como su propio PDF junto al PDF del mensaje en lugar de fusionarlos. Útil cuando los sistemas posteriores indexan los adjuntos individualmente.
MailConverterX.exe "C:\mail\export\*.eml" "C:\out\" -cPDF -attach -docs -sdocs
Tras exportar un PST de Outlook a archivos MSG, el resultado es un árbol de carpetas profundo que refleja el buzón original. -Recurse recorre cada subcarpeta; -kfs mantiene la misma estructura en el lado de salida para que Bandeja de entrada, Elementos enviados y carpetas personalizadas queden separadas.
MailConverterX.exe "C:\pst-export\Mailbox\*.msg" "C:\out\Mailbox\" -cPDF -Recurse -kfs -attach -docs
Para revisión legal necesitas todas las cabeceras, todos los campos de destinatarios y un registro de qué se adjuntó — incluso cuando un adjunto no se pudo convertir. -iattach escribe los metadatos del adjunto (nombre, tamaño, tipo MIME) dentro del documento; -rfcheaders incluye las cabeceras de transporte RFC-822 sin procesar; -uattach descomprime adjuntos comprimidos para que su contenido también se convierta.
MailConverterX.exe "C:\case-2026-117\*.msg" "C:\review\case-2026-117\" -cPDF -Recurse -kfs -sender -rcpt -cc -bcc -date -subject -attach -iattach -uattach -docs -rfcheaders
Útil para entregas con un único archivo: un PDF que contiene cada mensaje y cada adjunto convertido en orden cronológico. -combine fusiona todos los archivos de origen en un documento; -sort date los ordena por fecha del mensaje.
MailConverterX.exe "C:\mail\ProjectAcme\*.eml" "C:\out\ProjectAcme-archive.pdf" -cPDF -combine -sort date -attach -docs
Cuando los correos junto con sus adjuntos salen de la empresa, bloquea la salida. -mp establece la contraseña de propietario (controla los permisos), -up establece la contraseña de usuario (necesaria para abrir), y -perm concede exactamente las operaciones permitidas al destinatario.
MailConverterX.exe "C:\mail\confidential\*.msg" "C:\out\" -cPDF -attach -docs -mp "owner-secret" -up "client-pwd" -perm Copy -pc Maximum
Cuando el PDF fusionado lleva el cuerpo del correo y los adjuntos convertidos, una cabecera/pie aplicada en el momento de la conversión etiqueta cada página de forma consistente — equivalente a un sello tipo Bates en todo el paquete. Los campos de metadatos PDF hacen que el archivo sea autodescriptivo en sistemas de gestión documental.
MailConverterX.exe "C:\mail\matter-4471\*.msg" "C:\out\matter-4471\" -cPDF -attach -docs -HeadText "Matter 4471 — CONFIDENTIAL" -HeadAlign center -FootText "Page [page] of [date]" -FootAlign right -PDFAuthor "Acme Legal" -PDFTitle "Matter 4471 mail archive" -PDFSubject "Privileged review copy"
Para flujos de gestión documental, el PDF de correo más adjuntos fusionado debe ser conforme a ISO 19005 (PDF/A) y estar firmado digitalmente con un certificado organizacional. -pdfa activa el modo PDF/A; -PFXFile + -PFXPass firman el archivo con un certificado X.509.
MailConverterX.exe "C:\mail\archive\2026\*.eml" "C:\archive\2026\" -cPDF -Recurse -kfs -attach -docs -pdfa -PFXFile "C:\certs\acme-archive.pfx" -PFXPass "cert-pwd" -SignLoc "Acme HQ" -SignCon "[email protected]" -SignRes "Records retention seal"
Los nombres de archivo por defecto se derivan del archivo de origen. -template te permite componer nombres a partir de los metadatos del mensaje — fecha, remitente, asunto — que es lo que normalmente quieren los archivados y herramientas de gestión de casos. -atemplate controla los nombres de los adjuntos guardados por separado cuando -sdocs está activo.
MailConverterX.exe "C:\mail\inbox\*.msg" "C:\out\" -cPDF -attach -docs -sdocs -template "[date:yyyy-mm-dd]_[sender]_[subject]" -atemplate "[mail]_attach[attach_index]_[attach]"
Una vez que MailConverterX.exe corre como servicio o tarea programada, la única señal que tienes es el registro. -verbosity detail escribe una línea por mensaje y por adjunto; -logmode append conserva el historial entre ejecuciones; -list lee la cola desde un archivo de texto producido por el trabajador en lugar de desde la línea de comandos; -fo sobrescribe la salida anterior sin pedir confirmación.
MailConverterX.exe -list "C:\queues\mail-batch.txt" "C:\out\" -cPDF -Recurse -kfs -attach -docs -fo -log "C:\logs\mailconv.log" -verbosity detail -logmode append
Actualizado Tue, 05 May 2026
(solo $1900.00)
-docs. Con -docs, el conversor renderiza cada adjunto compatible (Word, Excel, PowerPoint, imágenes, PDFs) al formato de destino y los combina en el mismo documento de salida que el cuerpo del correo, o los guarda como documentos separados junto a él (-sdocs). El Mail Converter X regular solo guarda los adjuntos en sus tipos de archivo originales junto al correo. Pro es la opción adecuada para e-discovery, retención documental y cualquier flujo de trabajo donde el resultado sea un único PDF autocontenido por hilo de correo.new COM("MailConverterPro.MailConverterX") en PHP, new MailConverterX() en .NET (tras registrar el ActiveX Pro), win32com.client.Dispatch("MailConverterPro.MailConverterX") en Python, WIN32OLE.new('MailConverterPro.MailConverterX') en Ruby. De forma alternativa, el binario de línea de comandos MailConverterX.exe puede invocarse desde cualquier proceso, planificador o script de shell. También está disponible la transmisión directa de PDF mediante ConvertToStream para respuestas web ASP/PHP.-uattach para que su contenido también se convierta. Los tipos de adjunto no compatibles se anotan en el registro y se omiten sin abortar el mensaje.-pdfa para cumplir con ISO 19005 (PDF/A), y luego -PFXFile "C:\certs\acme.pfx" -PFXPass "cert-pwd" para firmar digitalmente con un certificado X.509 organizativo. -SignLoc, -SignCon y -SignRes adjuntan metadatos de firma. Combinado con -rfcheaders para conservar las cabeceras de transporte e -iattach para indexar adjuntos, esto cubre el escenario completo de archivado documental que requieren los sectores regulados.-IgnoreInvalidSource evita que un único archivo de origen defectuoso aborte todo el lote. -msuccess y -merror dirigen los archivos de origen procesados y los fallidos a carpetas separadas. La entrada por archivo de cola -list junto con -log -verbosity detail escribe una línea estructurada por mensaje y por adjunto para su ingestión por agregadores de logs.Descargue la versión de prueba y convierta sus archivos en minutos.
No se requiere tarjeta de crédito ni email.
Docker docker run -p 5000:5000 tdhster/mailconverter-api