Converta arquivos MSG e EML em servidores web
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
O Total Mail Converter Pro X é um SDK do lado do servidor que converte e-mails MSG e EML em PDF, PDF/A, DOC, RTF, TXT, HTML, TIFF e JPEG — com os anexos renderizados no mesmo formato de destino e mesclados em um único arquivo de saída, sem o Microsoft Outlook no servidor. Ele é executado em modo headless: sem interface gráfica, sem caixas de diálogo, sem pop-ups. O Total Mail Converter Pro X é fornecido com um binário de linha de comando e uma interface ActiveX/COM, integrando-se a ASP, PHP, .NET, Python, Ruby, Java e qualquer outro backend compatível com COM.
O que diferencia a variante Pro da edição X comum é a opção -docs. Com -docs ativado, cada anexo suportado — documentos do Word, planilhas, imagens, PDFs — é convertido para o mesmo formato de destino (por exemplo, PDF) e mesclado ao PDF da mensagem ou salvo como documentos separados ao lado dele. O destinatário abre um único arquivo e vê o corpo do e-mail mais cada anexo na ordem de leitura. Tipos de entrada de anexos suportados:
-uattach
Além da conversão de anexos, o Total Mail Converter Pro X cobre todo o cenário de e-discovery e retenção de registros: saída em PDF/A (-pdfa), assinatura digital com certificados X.509 (-PFXFile/-PFXPass), inclusão de cabeçalhos de transporte RFC-822 (-rfcheaders), indexação de metadados de anexos (-iattach), carimbo de cabeçalho/rodapé estilo Bates em todo o documento mesclado, PDFs protegidos por senha com flags de permissão individuais e recursão por pasta espelhando a estrutura original da caixa de correio (-Recurse -kfs).
A alta velocidade de conversão e o processamento em lote resultam em um processo simples e sem tédio — dezenas de milhares de mensagens com anexos por execução noturna é o normal. Experimente gratuitamente (período de teste de 30 dias, sem limitações) e descubra que ele realmente vale o investimento.
Algumas das conversões de formato de arquivo atualmente suportadas:
|
|
|
(inclui 30 dias de teste GRATUITO)
(apenas $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 muito satisfeitos com o Total Mail Converter Pro. Usamos para converter cerca de 20 mil e-mails em PDF; o que importava para nós era a capacidade de converter os anexos dos e-mails para o PDF de destino. Na conversão das 20 mil mensagens, apenas cerca de uma dúzia falhou por causa de anexos ilegíveis. Nossa sugestão de melhoria: quando um anexo falhar, em vez de pular o arquivo de e-mail inteiro, converta os outros anexos e finalize o PDF sem o anexo problemático. Continuem com o bom trabalho."
Manuel Schlief
www.darag.de
"Fazemos e-discovery para escritórios de advocacia externos. Os clientes enviam exportações PST; nosso pipeline transforma cada PST em um PDF por caso, com cada e-mail e cada anexo convertido na ordem de leitura, com os cabeçalhos RFC preservados. O motor é o Total Mail Converter Pro X com -docs -iattach -rfcheaders. Cerca de 8.000 mensagens por hora em nosso hardware, incluindo a renderização de anexos DOCX/XLSX. Cinco anos em produção, nenhuma falha que possamos atribuir ao conversor."
Henrik J.
Senior Backend Developer at a legal-tech vendor
"Os arquivos de comunicação com pacientes precisam chegar ao nosso sistema de gestão de documentos como PDF/A com assinaturas digitais X.509 — exigência da cadeia de custódia HIPAA. -pdfa mais -PFXFile/-PFXPass mais -SignLoc/-SignCon/-SignRes cobre todo o cenário de assinatura em uma única chamada de binário. Substituímos um pipeline Java/iText que precisava de três bibliotecas separadas para produzir o mesmo resultado. Headless no Windows Server Core, sem Outlook, sem surpresas."
Renata B.
DevOps Engineer at a healthcare records platform
"Empacotamos o Total Mail Converter Pro X em nosso produto de arquivamento de conformidade sob a Royalty-Free License. A taxa única por projeto foi uma fração do que custaria a stack Aspose.Email mais Aspose.Words mais Aspose.PDF. Nosso instalador entrega e registra o ActiveX, nosso aplicativo o chama diretamente, e os usuários finais veem apenas a nossa UI. A limitação de 32-bit do ActiveX nos custou alguns dias de retrabalho no pipeline, mas o suporte foi atencioso quando perguntamos sobre soluções alternativas."
Daichi M.
Independent Software Vendor
"Os clientes nos enviam exportações EML noturnas de seus tenants Exchange corporativos. Nosso pipeline de workers mescla cada thread em um único PDF carimbado com Bates por pasta de caso. -Recurse -kfs preserva a hierarquia de pastas da caixa de correio no lado da saída, -HeadText/-FootText aplica o rótulo do caso e a paginação tanto nas páginas da mensagem quanto nas dos anexos. Determinístico entre execuções, o que importa para revisão jurídica. A CLI é estável e bem documentada."
Aleksandra W.
Lead .NET Developer at a corporate-archive provider
O Total Mail Converter Pro X inclui o MailConverterX.exe, um binario de console que pode ser acionado a partir de scripts, tarefas agendadas, workers de arquivo de e-mail ou qualquer servico de back-end. O que diferencia a variante Pro e o switch -docs: em vez de apenas salvar anexos ao lado do e-mail, a versao Pro converte documentos do Word, planilhas, imagens e outros anexos para o formato de destino e os mescla no mesmo arquivo de saida que o corpo da mensagem. O conjunto de flags corresponde ao da GUI MailConverter.exe; para a referencia completa, consulte a documentacao da linha de comando. As receitas abaixo focam em cenarios de tratamento de anexos que somente a edicao Pro suporta.
O fluxo de trabalho caracteristico da versao Pro. -docs diz ao conversor para renderizar todos os anexos suportados para PDF; com -sdocs:off implicito (padrao), todas as paginas renderizadas sao anexadas ao PDF da mensagem. O destinatario abre um unico arquivo e ve o e-mail mais cada anexo Word, Excel, imagem e PDF na ordem de leitura.
MailConverterX.exe "C:\mail\incoming\*.msg" "C:\out\" -cPDF -attach -docs
Mesma conversao, mas -sdocs grava cada anexo convertido como seu proprio PDF ao lado do PDF da mensagem em vez de mescla-los. Util quando sistemas downstream indexam anexos individualmente.
MailConverterX.exe "C:\mail\export\*.eml" "C:\out\" -cPDF -attach -docs -sdocs
Apos exportar um PST do Outlook para arquivos MSG, o resultado e uma arvore de pastas profunda espelhando a caixa de correio original. -Recurse atravessa cada subpasta; -kfs mantem a mesma estrutura no lado da saida para que Caixa de Entrada, Itens Enviados e pastas personalizadas permanecam separadas.
MailConverterX.exe "C:\pst-export\Mailbox\*.msg" "C:\out\Mailbox\" -cPDF -Recurse -kfs -attach -docs
Para revisao juridica, voce precisa de cada cabecalho, cada campo de destinatario e um registro do que foi anexado — mesmo quando um anexo nao pode ser convertido. -iattach grava metadados de anexo (nome do arquivo, tamanho, tipo MIME) no documento; -rfcheaders inclui os cabecalhos de transporte RFC-822 brutos; -uattach descompacta anexos ZIPados para que seu conteudo tambem seja convertido.
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
Util para entregas em entregavel unico: um PDF contendo cada mensagem e cada anexo convertido em ordem cronologica. -combine mescla todos os arquivos de origem em um unico documento; -sort date os ordena pela data da mensagem.
MailConverterX.exe "C:\mail\ProjectAcme\*.eml" "C:\out\ProjectAcme-archive.pdf" -cPDF -combine -sort date -attach -docs
Quando e-mails mais anexos saem da empresa, bloqueie a saida. -mp define a senha do proprietario (controla permissoes), -up define a senha do usuario (necessaria para abrir), e -perm concede exatamente as operacoes que o destinatario tem permissao.
MailConverterX.exe "C:\mail\confidential\*.msg" "C:\out\" -cPDF -attach -docs -mp "owner-secret" -up "client-pwd" -perm Copy -pc Maximum
Quando o PDF mesclado carrega o corpo do e-mail e os anexos convertidos, um cabecalho/rodape aplicado no momento da conversao identifica cada pagina de forma consistente — equivalente a um carimbo estilo Bates em todo o pacote. Os campos de metadados PDF tornam o arquivo autodescritivo em sistemas de gerenciamento de documentos.
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 fluxos de gestao de registros, o PDF mesclado de e-mail mais anexos deve estar em conformidade com a ISO 19005 (PDF/A) e ser assinado digitalmente com um certificado da organizacao. -pdfa ativa o modo PDF/A; -PFXFile + -PFXPass assinam o arquivo com um 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"
Os nomes de arquivo padrao sao derivados do arquivo de origem. -template permite compor nomes a partir dos metadados da mensagem — data, remetente, assunto — que e o que arquivos e ferramentas de gestao de casos geralmente desejam. -atemplate controla os nomes dos anexos salvos separadamente quando -sdocs esta ativo.
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]"
Quando o MailConverterX.exe roda como um servico ou job agendado, o unico sinal que voce tem e o log. -verbosity detail grava uma linha por mensagem e por anexo; -logmode append mantem o historico entre execucoes; -list le a fila de um arquivo de texto produzido por worker em vez de da linha de comando; -fo sobrescreve a saida anterior sem solicitar.
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
Atualizado Tue, 05 May 2026
(apenas $1900.00)
-docs. Com -docs, o conversor renderiza cada anexo suportado (Word, Excel, PowerPoint, imagens, PDFs) no formato de destino e os mescla no mesmo documento de saída do corpo do e-mail, ou os salva como documentos separados ao lado (-sdocs). O Mail Converter X comum apenas salva os anexos em seus tipos de arquivo originais ao lado do e-mail. O Pro é a escolha certa para e-discovery, retenção de registros e qualquer fluxo de trabalho em que o entregável seja um único PDF autocontido por thread de e-mail.new COM("MailConverterPro.MailConverterX") em PHP, new MailConverterX() em .NET (após registrar o ActiveX Pro), win32com.client.Dispatch("MailConverterPro.MailConverterX") em Python, WIN32OLE.new('MailConverterPro.MailConverterX') em Ruby. Como alternativa, o binário de linha de comando MailConverterX.exe pode ser invocado a partir de qualquer processo, agendador ou script de shell. O streaming direto de PDF via ConvertToStream também está disponível para respostas web em ASP/PHP.-uattach para que seu conteúdo também seja convertido. Tipos de anexo não suportados são registrados no log e ignorados sem abortar a mensagem.-pdfa para conformidade com a ISO 19005 (PDF/A) e, em seguida, -PFXFile "C:\certs\acme.pfx" -PFXPass "cert-pwd" para assinar digitalmente com um certificado X.509 corporativo. -SignLoc, -SignCon e -SignRes anexam metadados de assinatura. Combinado com -rfcheaders para preservação de cabeçalhos de transporte e -iattach para indexação de anexos, isso cobre todo o cenário de arquivamento de registros exigido por setores regulamentados.-IgnoreInvalidSource impede que um único arquivo de origem ruim aborte todo o lote. -msuccess e -merror direcionam arquivos de origem processados com sucesso e com falha para pastas separadas. A entrada via fila -list mais -log -verbosity detail grava uma linha estruturada por mensagem e por anexo, pronta para ingestão em agregadores de log.Baixe a versão de teste gratuita e converta seus arquivos em minutos.
Não é necessário cartão de crédito ou email.
Docker docker run -p 5000:5000 tdhster/mailconverter-api