Converta e-mails por meio de servidores web
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
O Total Mail Converter X é um SDK de servidor que converte e-mails MSG, EML e MBOX para PDF, DOC, RTF, HTML, XHTML, TXT, TIFF, JPEG, EML, MSG e PST — sem o Microsoft Outlook, MAPI ou qualquer Office Interop no servidor. Funciona em silêncio: sem GUI, sem caixas de diálogo, sem janelas pop-up. O Total Mail Converter X vem 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 back-end compatível com COM.
O que esta variante Standard faz:
-atemplate; anexos ZIP descompactados com -uattach
-HeadText / -FootText) para e-discovery jurídico
-mp, -up, -perm)
-rfcheaders)
-Recurse + -kfs para processar a árvore inteira da caixa de correio
Standard vs Pro X: a edição Standard salva os anexos em seus tipos de arquivo originais ao lado do PDF do e-mail. A versão Pro com -docs renderiza os anexos (DOCX, XLSX, imagens, PDFs) no formato de destino e os mescla no mesmo arquivo de saída do corpo da mensagem. Escolha Standard para arquivamento simples da caixa de correio; escolha Pro para entregas de e-discovery em que a saída é um PDF autocontido por thread de e-mail.
Experimente gratuitamente (período de avaliação de 30 dias, sem limitações) e descubra que ele realmente vale o que custa.
Algumas das conversões de formato de arquivo atualmente suportadas:
|
|
|
Agentes LLM (Claude, ChatGPT, Cursor, Cline) e frameworks de retrieval (LangChain, LlamaIndex, Haystack) não leem MSG, EML ou MBOX — eles leem texto. O Total Mail Converter X grava mensagens em GitHub-Flavored Markdown com frontmatter estruturado e um sidecar opcional compatível com Docling, de forma que cada mensagem chegue ao seu vector store com remetente, destinatários, data, assunto, threading e corpo intactos — e não como um despejo plano onde cabeçalhos e corpo se misturam.
O que você obtém ao usar saída Markdown:
source_file, format (MIME), message_id, from, to, cc, bcc, date, subject, in_reply_to, references (threading completo), has_attachments, language detectada, generator e um binary_hash para proveniência
in_reply_to e references permanecem consultáveis, de forma que um índice RAG downstream possa reconstruir conversas
attachments no frontmatter lista nome, tipo MIME e tamanho; os próprios arquivos são salvos ao lado do Markdown (este é o comportamento de anexos da edição Standard; para anexos renderizados inline use o Total Mail Converter Pro X)
.docling.json — JSON em esquema Docling com âncoras de cabeçalho/corpo, metadados completos de anexos e um array chunks_hint que seu splitter pode ler
É o CoolUtils RAG Adapter — um contrato Markdown unificado compartilhado por todos os produtos Total Converter X. Especificação completa, amostras .md + .docling.json e trechos de integração estão na página Coolutils Converter X — RAG Adapter.
(inclui 30 dias de teste GRATUITO)
(apenas $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;
"Trabalho na Freeland Cooper & Foreman LLP e atualmente conduzo o projeto para o qual compramos o Total Mail Converter X. Adquirimos o programa para mesclar grandes quantidades de arquivos .msg em formato .pst e, até agora, estou muito satisfeito com os resultados; é confiável, altamente funcional e fácil de usar."
Max Canin
www.freelandlaw.com
"Usamos o SharePoint como biblioteca de documentos e o acessamos via UNC. Eu uso o Total Mail Converter X para arquivar mensagens de e-mail. Uso a linha de assunto como parte do nome do arquivo resultante, mas isso traz um problema: o SharePoint não permite certos caracteres em nomes de arquivos. Eu gostaria que houvesse uma opção de linha de comando para remover os caracteres não seguros para uso em caminhos UNC do SharePoint."
Shane Adam
Systems Analyst & Developer, http://eigltd.com
"Arquivamos exportações de caixas de correio de funcionários que saem da empresa. Os clientes nos enviam dumps de PST/MBOX; nosso pipeline transforma cada um em uma pasta de PDFs autocontidos com cabeçalhos RFC-822 completos preservados para análise forense. O Total Mail Converter X com -Recurse -kfs -rfcheaders -combine é o motor. Seis anos em produção, throughput de cerca de 5.000 mensagens por hora em nosso hardware. Sem Outlook em qualquer parte do pipeline."
Bartosz K.
Senior Backend Developer at a compliance-archive vendor
"Os tickets anexam arquivos EML; a equipe de suporte precisa de cópias em PDF para o histórico do ticket. Total Mail Converter X mais Total Folder Monitor: os tickets soltam EML em uma pasta de entrada, o conversor processa, a ferramenta de suporte pega os PDFs. Numeração de páginas estilo Bates limpa graças a -HeadText/-FootText, sem intervenção manual. Headless no Windows Server Core, sem Outlook, sem surpresas de licenciamento."
Soledad O.
DevOps Engineer at a customer-support SaaS
"Empacotamos o Total Mail Converter X em nosso produto de gestão de registros sob a Royalty-Free License. A taxa única por projeto foi uma fração do que a Aspose.Email cobrava em uma assinatura por desenvolvedor. 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 prestativo quando perguntamos sobre alternativas."
Niko T.
Independent Software Vendor
O Total Mail ConverterX 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 conjunto de flags corresponde ao da GUI MailConverter.exe; para a referencia completa, consulte a documentacao da linha de comando. As receitas abaixo cobrem os casos sobre os quais os clientes do SDK que trabalham com caixas de correio MSG, EML e MBOX perguntam com mais frequencia.
A chamada mais simples possivel — uma mensagem do Outlook entra, um PDF sai.
MailConverterX.exe "C:\mailbox\invoice.msg" "C:\out\invoice.pdf" -cPDF
Processa toda uma pasta de arquivos EML exportados do Thunderbird, Apple Mail ou qualquer cliente IMAP e deposita os PDFs em um diretorio de saida irmao.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF
Troque a mascara por *.msg ou *.mbox para escolher um formato de origem diferente, ou -cDOC / -cTXT / -cTIFF para escolher um destino diferente.
Uma exportacao do Outlook raramente vive em uma pasta plana — voce normalmente recebe Caixa de Entrada, Itens Enviados, Arquivo Morto e dezenas de subpastas. -Recurse percorre os subdiretorios; -kfs recria a mesma arvore no lado da saida em vez de aplanar tudo em um unico balde.
MailConverterX.exe "C:\export\Mailbox\*.msg" "C:\out\Mailbox\" -cPDF -Recurse -kfs
Para e-discovery e autos de processo, voce normalmente quer um PDF por caso, nao um por e-mail. -combine mescla as mensagens correspondentes em um unico PDF na ordem dos arquivos de origem; -sort date as organiza cronologicamente.
MailConverterX.exe "C:\cases\Acme\*.eml" "C:\out\Acme-thread.pdf" -cPDF -combine -sort date
A edicao Standard converte o corpo do e-mail e grava os anexos originais no disco ao lado do documento de saida. -attach ativa a extracao de anexos; -atemplate controla o padrao de nome dos arquivos de anexo.
MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -attach -atemplate "[mail]_[attach_index]_[attach]"
Adicione -uattach para descompactar anexos ZIP automaticamente, ou -images para incorporar imagens inline diretamente no corpo do PDF.
Por padrao, todos os campos de cabecalho sao exportados. Para produzir um PDF limpo pronto para impressao que mostre apenas De, Data e Assunto — sem CC, sem BCC, sem cabecalhos de transporte — desligue explicitamente os campos indesejados.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -sender -date -subject -cc:off -bcc:off -rcpt:off
Adicione -rfcheaders se em vez disso voce precisar dos cabecalhos de transporte RFC-822 completos preservados para revisao forense.
Carimbo estilo Bates para entregas em litigios: um rodape com numero de pagina corrente em cada pagina, mais um cabecalho com a data de producao. [page] e [date] sao os marcadores embutidos.
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
Padrao para enviar correspondencia privilegiada a advogados adversarios: uma senha de proprietario bloqueia permissoes de edicao/impressao, uma senha de usuario controla a abertura do arquivo, e -perm concede exatamente os direitos que voce permite.
MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Copy
Quando o MailConverterX.exe roda como um servico ou job agendado, a unica forma de saber o que aconteceu e o log. -verbosity detail grava uma linha por arquivo; -logmode append mantem o historico entre execucoes; -fo sobrescreve a saida anterior silenciosamente em vez de parar em colisoes.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -log "C:\logs\mailconv.log" -verbosity detail -logmode append -fo
Quando um worker de arquivo de e-mail grava um arquivo de fila e o conversor o consome, voce nao quer codificar os caminhos dos arquivos na linha de comando. -list le mascaras de arquivo (uma por linha) de um arquivo de texto.
MailConverterX.exe -list "C:\queues\mail-batch.txt" "C:\out\" -cPDF -log "C:\logs\mailconv.log"
Atualizado Tue, 05 May 2026
(apenas $950.00)
-docs, que renderiza cada anexo suportado (Word, Excel, PowerPoint, imagens, PDFs) no formato de destino e os mescla no mesmo PDF de saída do corpo do e-mail. Escolha Standard para arquivamento simples da caixa de correio; escolha Pro para entregas de e-discovery em que a saída é um PDF autocontido por thread de e-mail.new COM("MailConverter.MailConverterX") em PHP, new MailConverterX() em .NET, win32com.client.Dispatch("MailConverter.MailConverterX") em Python, WIN32OLE.new('MailConverter.MailConverterX') em Ruby. Como alternativa, o binário de linha de comando MailConverterX.exe pode ser invocado a partir de qualquer processo, agendador ou shell script. Streaming direto de PDF via ConvertToStream também está disponível para respostas web em ASP/PHP.-c <FORMATO> para selecionar o destino.-attach para habilitar a extração de anexos. Por padrão, os anexos vão para a mesma pasta do PDF de saída. Use -atemplate "[mail]_[attach_index]_[attach]" para definir um padrão de nomeação personalizado baseado nos metadados da mensagem e do anexo. Adicione -uattach para descompactar anexos ZIP automaticamente, de forma que o conteúdo seja salvo junto com o restante. Adicione -images para incorporar imagens inline diretamente no corpo do PDF em vez de salvá-las como arquivos.-mp "senha-proprietario" define a senha do proprietário (controla permissões); -up "senha-usuario" protege a abertura do arquivo; -perm aceita qualquer combinação de Print, HighResPrint, Copy, Modify, Annotation, FormFill. Para marcação Bates use -HeadText/-FootText com os marcadores [page], [date], [time] e -HeadAlign/-FootAlign para posicionar o texto. Combinado com -combine -sort date, isso gera um único PDF com marcação Bates para uma thread de e-mail inteira..md como formato de saída e o conversor grava um arquivo em GitHub-Flavored Markdown por mensagem: corpos HTML convertidos para Markdown, corpos em texto puro repassados, MIME multipart montado em uma única visão legível. Um bloco YAML frontmatter carrega message_id, from, to, cc, bcc, date, subject, in_reply_to e references (threading completo), mais um array attachments com nome, tipo MIME e tamanho. As cadeias de threading permanecem consultáveis, de forma que um índice RAG downstream possa reconstruir conversas inteiras. Faz parte do CoolUtils RAG Adapter — o mesmo contrato Markdown é compartilhado por todos os produtos Total Converter X.binary_hash para proveniência e um array chunks_hint que seu splitter pode ler. Habilite com -Docling na linha de comando. O JSON é independente do Markdown — você pode alimentar ambos no seu índice ou usar apenas o .md..md é GFM puro com um bloco YAML frontmatter, então o UnstructuredMarkdownLoader do LangChain, o MarkdownReader do LlamaIndex, o MarkdownToDocument do Haystack e as ferramentas de arquivo MCP do Claude Code lêem diretamente. Para Claude, ChatGPT ou qualquer UI de chat, você pode colar o Markdown no contexto tal como está — remetente/destinatário/data ficam visíveis no topo, os metadados de threading estão no frontmatter e o corpo se lê como uma mensagem comum.MailConverterX.exe "C:\inbox\*.eml" "C:\out\" -cMD -Docling -Recurse -kfs. -cMD seleciona Markdown; -Docling grava adicionalmente o sidecar .docling.json; -Recurse percorre subdiretórios; -kfs espelha a estrutura de pastas da caixa de correio no lado da saída. Funciona da mesma forma para entradas MSG e MBOX. Combine com -template "[date:yyyy-mm-dd]_[from]_[subject]" para nomes de arquivos autodescritivos. O Markdown resultante está pronto para particionar, gerar embeddings e indexar em qualquer vector store.Baixe a versão de teste gratuita e converta seus arquivos em minutos.
Não é necessário cartão de crédito ou email.
Entre em contato conosco . Teremos prazer em aprimorar nosso conversor de e-mail para que ele se ajuste perfeitamente às suas necessidades. A personalização geralmente é gratuita para nossos clientes.
Docker docker run -p 5000:5000 tdhster/mailconverter-api