Logo
Home Products Support Contact About Us
arrow1 File Converters
arrow1 TIFF and PDF apps
arrow1 Forensic
arrow1 Freeware

Total Mail Converter Pro X

Convert MSG, EML to PDF/PDF/A with attachments converted and merged on Windows servers — without Microsoft Outlook.

Total Mail Converter Pro X — Server MSG/EML to PDF with Attachments Converted & Merged

Windows
2000/2003/Vista
7/8/10/11
and
2012/2016 / 2019/2022 Server
and
Docker / Citrix / Wine

Total Mail Converter Pro X is a server-side SDK that converts MSG and EML emails to PDF, PDF/A, DOC, RTF, TXT, HTML, TIFF, and JPEG — with attachments rendered to the same target format and merged into one output file, without Microsoft Outlook on the server. It runs headless: no GUI, no dialogs, no popups. Total Mail Converter Pro X ships with both a command-line binary and an ActiveX/COM interface, so it drops into ASP, PHP, .NET, Python, Ruby, Java, and any other COM-aware backend.

What makes the Pro variant different from the regular X edition is the -docs switch. With -docs on, every supported attachment — Word documents, spreadsheets, images, PDFs — is converted to the same target format (e.g. PDF) and either merged into the message PDF or saved as separate documents alongside it. The recipient opens one file and sees the email body plus every attachment in reading order. Supported attachment input types:

  • Word documents: DOC, DOCX, RTF
  • Spreadsheets: XLS, XLSX, ODS, CSV
  • Slide decks: PPT, PPTX
  • Documents: PDF, HTML, XHTML, TXT
  • Images: JPEG, PNG, BMP, TIFF, GIF
  • Plain attachments saved alongside; ZIP attachments unpacked with -uattach

Beyond attachment conversion, Total Mail Converter Pro X covers the full e-discovery and records-retention scenario: PDF/A output (-pdfa), digital signing with X.509 certificates (-PFXFile/-PFXPass), RFC-822 transport-header inclusion (-rfcheaders), attachment metadata indexing (-iattach), Bates-style header/footer stamping across the merged document, password-protected PDFs with per-permission flags, and per-folder recursion mirroring the original mailbox structure (-Recurse -kfs).

High converting speed and batch conversions result in a simple and boredom-free process — tens of thousands of messages with attachments per overnight run is normal. Try it for free (30 days trial period, no limitations) and find out that it is really worth its money.

Some of the currently supported file format conversions:
    MSG / EML
  • MSG to PDF (with attachments)
  • MSG to PDF/A (signed)
  • MSG to TIFF (multi-page)
  • MSG to DOC / RTF / HTML
    Attachment handling
  • Convert & merge into message
  • Convert & save separately
  • Index attachment metadata
  • Unpack ZIP attachments
    E-discovery / archive
  • RFC-822 headers preserved
  • Bates header / footer stamping
  • Digital signature (PFX cert)

Download Now!

(includes 30 day FREE trial)

Buy License

(only $1900.00)

 
Accept Payment Methods

Examples of Total Mail Converter Pro X

Convert mail files with Total Mail Converter Pro X and .NET


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);

Convert mail files on web servers with Total Mail Converter Pro X

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);
        }
    }
More information about Azure Functions.

Convert mail files on web servers with Total Mail Converter Pro X

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

Stream the resulting PDF directly from ASP

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

Convert MSG and EML files with PHP and Total Mail Converter Pro X

$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;

Convert mail files with Total Mail Converter Pro X and Ruby

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

Convert mail files with Total Mail Converter Pro X and Python

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)

Convert mail files with Pascal and Total Mail Converter Pro X

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;

Convert MSG and EML files on web servers with Total Mail Converter Pro X

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)

Convert mail files with Total Mail Converter Pro X and Perl

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;

quote

Total Mail Converter Pro X Customer Reviews 2026

Rate It
Rated 4.7/5 based on customer reviews
5 Star

"We are very happy with the Total Mail Converter Pro. We used it to convert around 20 thousand mails to PDF; important for us was its ability to convert mail attachments into the target PDF. On converting the 20 thousand messages, only around a dozen failed because of unreadable attachments. Our suggestion for improvement: when an attachment fails, do not skip the whole mail file but rather convert the other attachments and complete the PDF without the single faulty attachment. Keep up the good work."

5 Star Manuel Schlief
www.darag.de

"We do e-discovery for outside counsel. Customers send PST exports; our pipeline turns each PST into one PDF per matter, every email plus every converted attachment in reading order with RFC headers preserved. Total Mail Converter Pro X with -docs -iattach -rfcheaders is the engine. Around 8,000 messages per hour on our hardware including DOCX/XLSX attachment rendering. Five years in production, no failures we can blame on the converter."

5 Star Henrik J.
Senior Backend Developer at a legal-tech vendor

"Patient communication archives have to land in our document-management system as PDF/A with X.509 digital signatures — HIPAA chain-of-custody requirement. -pdfa plus -PFXFile/-PFXPass plus -SignLoc/-SignCon/-SignRes covers the whole signing scenario in one binary call. We replaced a Java/iText pipeline that needed three separate libraries to produce the same output. Headless on Windows Server Core, no Outlook, no surprises."

5 Star Renata B.
DevOps Engineer at a healthcare records platform

"Bundled Total Mail Converter Pro X into our compliance-archiving product under the Royalty-Free License. The one-time per-project fee was a fraction of what Aspose.Email plus Aspose.Words plus Aspose.PDF would have cost as a stack. Our installer ships and registers the ActiveX, our app calls it directly, end users see only our UI. The 32-bit ActiveX limitation cost us a couple of days of pipeline rework, but support was responsive when we asked about workarounds."

4 Star Daichi M.
Independent Software Vendor

"Customers ship us nightly EML exports from their corporate Exchange tenants. Our worker pipeline merges each thread into one Bates-stamped PDF per case folder. -Recurse -kfs preserves the mailbox folder hierarchy on the output side, -HeadText/-FootText applies the case label and pagination across both message and attachment pages. Deterministic across runs, which matters for legal review. The CLI is stable and well-documented."

5 Star Aleksandra W.
Lead .NET Developer at a corporate-archive provider


Command-Line Examples

Total Mail Converter Pro X ships with MailConverterX.exe, a console binary you can drive from scripts, scheduled tasks, mail-archive workers, or any backend service. What sets the Pro variant apart is the -docs switch: instead of just saving attachments next to the email, Pro converts Word documents, spreadsheets, images, and other attachments to the target format and merges them into the same output file as the message body. The flag set matches the GUI MailConverter.exe; for the full reference see the command-line documentation. The recipes below focus on attachment-handling scenarios that only the Pro edition supports.

1. Convert MSG to PDF with attachments merged into the same file

The signature Pro workflow. -docs tells the converter to render every supported attachment to PDF; with -sdocs:off implied (default), all rendered pages are appended to the message PDF. The recipient opens one file and sees the email plus every Word, Excel, image, and PDF attachment in reading order.

MailConverterX.exe "C:\mail\incoming\*.msg" "C:\out\" -cPDF -attach -docs

2. EML to PDF with attachments embedded as separate documents

Same conversion, but -sdocs writes each converted attachment as its own PDF alongside the message PDF instead of merging them. Useful when downstream systems index attachments individually.

MailConverterX.exe "C:\mail\export\*.eml" "C:\out\" -cPDF -attach -docs -sdocs

3. Recursive walk over a PST export tree

After exporting an Outlook PST to MSG files, the result is a deep folder tree mirroring the original mailbox. -Recurse traverses every subfolder; -kfs keeps the same structure on the output side so Inbox, Sent Items, and custom folders stay separated.

MailConverterX.exe "C:\pst-export\Mailbox\*.msg" "C:\out\Mailbox\" -cPDF -Recurse -kfs -attach -docs

4. E-discovery batch with full attachment auditing

For legal review you need every header, every recipient field, and a record of what was attached — even when an attachment couldn't be converted. -iattach writes attachment metadata (file name, size, MIME type) into the document; -rfcheaders includes the raw RFC-822 transport headers; -uattach unpacks ZIPped attachments so their contents are also converted.

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

5. Combine an entire mail folder into one merged PDF

Useful for single-deliverable handoffs: one PDF containing every message and every converted attachment in chronological order. -combine merges all source files into one document; -sort date orders them by message date.

MailConverterX.exe "C:\mail\ProjectAcme\*.eml" "C:\out\ProjectAcme-archive.pdf" -cPDF -combine -sort date -attach -docs

6. Password-protected PDF with restricted permissions

When emails plus attachments leave the company, lock the output. -mp sets the owner password (controls permissions), -up sets the user password (required to open), and -perm grants exactly the operations the recipient is allowed.

MailConverterX.exe "C:\mail\confidential\*.msg" "C:\out\" -cPDF -attach -docs -mp "owner-secret" -up "client-pwd" -perm Copy -pc Maximum

7. Branded output: header, footer, and custom metadata across email and attachments

When the merged PDF carries email body and converted attachments, a header/footer applied at conversion time labels every page consistently — equivalent to a Bates-style stamp across the whole package. PDF metadata fields make the file self-describing in document-management systems.

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"

8. Digitally signed PDF/A for long-term records retention

For records-management workflows the merged email-plus-attachments PDF must be ISO 19005 (PDF/A) compliant and digitally signed with an organizational certificate. -pdfa enables PDF/A mode; -PFXFile + -PFXPass sign the file with an X.509 certificate.

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"

9. Custom file-naming template for the merged output

Default file names are derived from the source file. -template lets you compose names from message metadata — date, sender, subject — which is what archives and case-management tools usually want. -atemplate controls the names of separately saved attachments when -sdocs is on.

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]"

10. Unattended server runs with detailed logging

Once MailConverterX.exe runs as a service or scheduled job, the only signal you have is the log. -verbosity detail writes one line per message and per attachment; -logmode append keeps history across runs; -list reads the queue from a worker-produced text file instead of from the command line; -fo overwrites previous output without prompting.

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
Download Now!

Updated Tue, 05 May 2026

Buy License

(only $1900.00)



Frequently Asked Questions About Total Mail Converter Pro X ▼

No. Total Mail Converter Pro X reads MSG and EML directly through its own parser. You do not need Outlook, the Outlook Object Model, MAPI, or Redemption on the conversion server. This is the main reason customers move to Mail Converter Pro X from Outlook-Interop pipelines — no Office licensing, no app pool crashes, no headless Outlook instance to keep alive.
The Pro X variant adds the -docs attachment-conversion engine. With -docs the converter renders every supported attachment (Word, Excel, PowerPoint, images, PDFs) to the target format and merges them into the same output document as the email body, or saves them as separate documents alongside it (-sdocs). The regular Mail Converter X only saves attachments as their original file types next to the email. Pro is the right choice for e-discovery, records retention, and any workflow where the deliverable is one self-contained PDF per email thread.
Total Mail Converter Pro X exposes a COM/ActiveX interface, so any COM-aware language can call it directly: new COM("MailConverterPro.MailConverterX") in PHP, new MailConverterX() in .NET (after registering the Pro ActiveX), win32com.client.Dispatch("MailConverterPro.MailConverterX") in Python, WIN32OLE.new('MailConverterPro.MailConverterX') in Ruby. Alternatively, the MailConverterX.exe command-line binary can be invoked from any process, scheduler, or shell script. Direct PDF streaming via ConvertToStream is also available for ASP/PHP web responses.
Word: DOC, DOCX, RTF. Spreadsheets: XLS, XLSX, ODS, CSV. Slides: PPT, PPTX. Documents: PDF, HTML, XHTML, TXT. Images: JPEG, PNG, BMP, TIFF, GIF. Plain attachments are saved alongside the message; ZIP attachments can be unpacked with -uattach so their contents are also converted. Unsupported attachment types are noted in the log and skipped without aborting the message.
Yes. Use -pdfa for ISO 19005 (PDF/A) compliance, then -PFXFile "C:\certs\acme.pfx" -PFXPass "cert-pwd" to digitally sign with an organizational X.509 certificate. -SignLoc, -SignCon, and -SignRes attach signature metadata. Combined with -rfcheaders for transport-header preservation and -iattach for attachment indexing, this covers the full archival-records scenario regulated industries need.
The standard backend pattern is supported: an attachment that fails to convert is logged and skipped, the rest of the message proceeds. -IgnoreInvalidSource keeps a single bad source file from aborting the whole batch. -msuccess and -merror route processed and failed source files into separate folders. -list queue-file input plus -log -verbosity detail writes one structured line per message and per attachment for log-aggregator ingestion.
Yes. Because the converter is a regular Windows binary with a COM interface, it runs anywhere Windows runs: IIS application pools, Windows containers, Azure App Service or Azure Functions on the Windows runtime, AWS EC2 Windows instances, and on-premises Windows Server. Note: the ActiveX component is 32-bit only, so configure your IIS application pool or .NET runtime to 32-bit when calling via COM. The command-line binary works on 64-bit Windows without restrictions.
Yes. The download is a fully functional 30-day trial with all output formats, attachment conversion, ActiveX, and command-line features unlocked — no credit card and no email required to start. After 30 days you decide whether to purchase. The license is one-time payment with lifetime updates and technical support.
Download Now!

Updated Tue, 05 May 2026

Buy License

(only $1900.00)


Complete list of supported Mail conversions

  • MIM to PDF
  • MIM to HTML
  • MIM to XHTML
  • MIM to JPEG
  • MIM to TIFF
  • MIM to Doc
  • MIM to RTF
  • MIM to ODT
  • MIM to TXT
  • MIM to Text
  • MIM to EML
  • MIM to MSG
  • MIM to MBox
  • MIM to PST
  • MIM to XPS

Start working now!

Download free trial and convert your files in minutes.
No credit card or email required.

⬇ Download Free Trial Windows 7/8/10/11 • 305 MB
Pro Suite

Key Features Of Full Registered Version

  • Provides access via ActiveX interface for all legacy programming languages (Visual Basic 6 or Delphi) as well as scripting (i.e. VBscript).
  • Any language that supports Web Services including .NET (2.00, 3.5, 4.00), Ruby, PHP and Java is supported.
  • Emails to PDF, DOC, TXT, HTML, HTMLX, TIFF, RTF, TIFF, JPEG.
  • Supports MSG, EML, EMLX, MIM files
  • Convert scanned documents into searchable files
  • Converts attached files - archive or back up emails
  • Processes files in a batch mode, no task is too large
  • Can sign target PDF files or set user permissions
  • Can combine several emails into one multi-page PDF or TIFF file
  • A handy renamer to give new descriptive names
  • Adds paginatiosn, dates, any text
  • Stamps bates
  • Multithreading ActiveX
  • Both exe and dll
  • Easy to work with
  • Docker docker run -p 5000:5000 tdhster/mailconverter-api

System Requirements



List of apps with built-in API support

Copyright 2003-2026 CoolUtils Development. All rights reserved.