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

Total Mail Converter X

Convert MSG, EML, MBOX to PDF, DOC, TIFF, HTML on Windows servers — without Microsoft Outlook.

Total Mail Converter X — Server MSG/EML/MBOX to PDF/DOC/TIFF Converter with ActiveX, DLL & Command Line

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

Total Mail Converter X is a server-side SDK that converts MSG, EML, and MBOX emails to PDF, DOC, RTF, HTML, XHTML, TXT, TIFF, JPEG, EML, MSG, and PST — without Microsoft Outlook, MAPI, or any Office Interop on the server. It runs silent: no GUI, no dialogs, no popups. Total Mail Converter 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 this Standard variant does:

  • Convert MSG (Outlook), EML (RFC-822), and MBOX (Thunderbird/Apple Mail) to any target format
  • Convert tens or hundreds of thousands of messages in one batch
  • Save attachments alongside the converted message — with custom naming via -atemplate; ZIP attachments unpacked with -uattach
  • Bates-style page numbering, custom headers/footers (-HeadText / -FootText) for legal e-discovery
  • Password-protected PDFs with per-permission flags (-mp, -up, -perm)
  • RFC-822 transport headers preserved on demand (-rfcheaders)
  • Folder mask, -Recurse + -kfs for whole-mailbox-tree processing
  • Pair with Total Folder Monitor for hot-folder auto-conversion on file arrival

Standard vs Pro X: the Standard edition saves attachments as their original file types next to the email PDF. The Pro version with -docs renders attachments (DOCX, XLSX, images, PDFs) into the target format and merges them into the same output file as the message body. Choose Standard for plain mailbox archival; choose Pro for e-discovery deliverables where the output is one self-contained PDF per email thread.

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 / MBOX
  • MSG to PDF
  • EML to PDF (multi-page)
  • MBOX to PDF (one PDF per message)
  • Combine thread to single PDF
    To document formats
  • MSG to DOC / RTF
  • MSG to HTML / XHTML
  • EML to TXT / Unicode TXT
  • EML to TIFF (multi-page)
    E-discovery / archive
  • Bates page numbering
  • RFC-822 headers preserved
  • Password-protected PDF

Download Now!

(includes 30 day FREE trial)

Buy License

(only $950.00)

 
Accept Payment Methods

Examples of Total Mail Converter X

Convert mail files with Total Mail Converter X and .NET


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

Convert mail files on web servers with Total Mail Converter 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";
                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);
        }
    }
More information about Azure Functions.

Convert mail files on web servers with Total Mail Converter X

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

Stream the resulting PDF directly from ASP

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

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

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

Convert mail files with Total Mail Converter X and Ruby

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

Convert mail files with Total Mail Converter X and Python

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)

Convert mail files with Pascal and Total Mail Converter X

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;

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

var c = new ActiveXObject("MailConverter.MailConverterX");
c.Convert("C:\\test\\source.msg", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
  alert(c.ErrorMessage)

Convert mail files with Total Mail Converter X and Perl

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;

quote

Total Mail Converter X Customer Reviews 2026

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

"I work for Freeland Cooper & Foreman LLP and I am currently handling the project for which we purchased Total Mail Converter X. We purchased the program for the purpose of merging large numbers of .msg files into .pst form, and so far I am very pleased with the results; it is reliable, highly functional, and easy to use."

5 Star Max Canin
www.freelandlaw.com

"We use SharePoint as a document library and access it through UNC. I use Total Mail Converter X to archive e-mail messages. I use the subject line as part of the resultant filename, but that presents a problem: SharePoint does not allow certain characters in filenames. I was wondering if there could be a command-line option added to remove the unsafe characters for use in SharePoint UNC paths."

4 Star Shane Adam
Systems Analyst & Developer, http://eigltd.com

"We archive employee mailbox exports from departing staff. Customers ship us PST/MBOX dumps; our pipeline turns each one into a folder of self-contained PDFs with full RFC-822 headers preserved for forensic review. Total Mail Converter X with -Recurse -kfs -rfcheaders -combine is the engine. Six years in production, throughput around 5,000 messages per hour on our hardware. No Outlook anywhere in the pipeline."

5 Star Bartosz K.
Senior Backend Developer at a compliance-archive vendor

"Tickets attach EML files; the support team needs PDF copies for the ticket trail. Total Mail Converter X plus Total Folder Monitor: tickets drop EML into an inbox folder, the converter clears them, the support tool picks up the PDFs. Clean Bates-style page numbers thanks to -HeadText/-FootText, no manual intervention. Headless on Windows Server Core, no Outlook, no licensing surprises."

5 Star Soledad O.
DevOps Engineer at a customer-support SaaS

"Bundled Total Mail Converter X into our records-management product under the Royalty-Free License. The one-time per-project fee was a fraction of what Aspose.Email wanted on a per-developer subscription. 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 Niko T.
Independent Software Vendor


Command-Line Examples

Total Mail ConverterX ships with MailConverterX.exe, a console binary you can drive from scripts, scheduled tasks, mail-archive workers, or any backend service. The flag set matches the GUI MailConverter.exe; for the full reference see the command-line documentation. The recipes below cover the cases we hear about most often from SDK customers working with MSG, EML, and MBOX mailboxes.

1. Convert a single MSG to PDF

The smallest possible call — one Outlook message in, one PDF out.

MailConverterX.exe "C:\mailbox\invoice.msg" "C:\out\invoice.pdf" -cPDF

2. Batch every EML in a folder by mask

Process a whole folder of EML files exported from Thunderbird, Apple Mail, or any IMAP client and drop the PDFs into a sibling output directory.

MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF

Swap the mask for *.msg or *.mbox to pick a different source format, or -cDOC / -cTXT / -cTIFF to pick a different target.

3. Recurse an Outlook export tree and mirror its folder structure

An Outlook export rarely lives in one flat folder — you usually get Inbox, Sent, Archive, and dozens of subfolders. -Recurse walks subdirectories; -kfs recreates the same tree on the output side instead of flattening everything into one bucket.

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

4. Combine a thread into one PDF

For e-discovery and case files you usually want one PDF per matter, not one per email. -combine merges the matched messages into a single PDF in source-file order; -sort date arranges them chronologically.

MailConverterX.exe "C:\cases\Acme\*.eml" "C:\out\Acme-thread.pdf" -cPDF -combine -sort date

5. Save attachments alongside the converted message

The Standard edition converts the email body and writes original attachments to disk next to the output document. -attach turns attachment extraction on; -atemplate controls the attachment file-name pattern.

MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -attach -atemplate "[mail]_[attach_index]_[attach]"

Add -uattach to unpack ZIP attachments automatically, or -images to embed inline images directly in the PDF body.

6. Customise which mail headers land in the output

By default every header field is exported. To produce a clean print-ready PDF that shows only From, Date, and Subject — no CC, no BCC, no transport headers — switch the unwanted fields off explicitly.

MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -sender -date -subject -cc:off -bcc:off -rcpt:off

Add -rfcheaders if you instead need the full RFC-822 transport headers preserved for forensic review.

7. Page-numbered PDF for legal e-discovery

Bates-style stamping for litigation hand-offs: a footer with a running page number on every page, plus a header with the production date. [page] and [date] are the built-in placeholders.

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

8. Password-protect the output PDF

Standard for sending privileged correspondence to opposing counsel: an owner password locks edit/print permissions, a user password gates opening the file, and -perm grants exactly the rights you allow.

MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Copy

9. Unattended runs with a detailed log

Once MailConverterX.exe runs as a service or scheduled job, the only way to know what happened is the log. -verbosity detail writes one line per file; -logmode append keeps history across runs; -fo overwrites earlier output silently instead of stopping on collisions.

MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -log "C:\logs\mailconv.log" -verbosity detail -logmode append -fo

10. Drive a queue from a list file

When a mail-archive worker writes a queue file and the converter consumes it, you don't want to encode the file paths into the command line itself. -list reads file masks (one per line) from a text file.

MailConverterX.exe -list "C:\queues\mail-batch.txt" "C:\out\" -cPDF -log "C:\logs\mailconv.log"
Download Now!

Updated Tue, 05 May 2026

Buy License

(only $950.00)



Frequently Asked Questions About Total Mail Converter X ▼

No. Total Mail Converter X reads MSG, EML, and MBOX 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 X from Outlook-Interop pipelines — no Office licensing, no app pool crashes, no headless Outlook instance to keep alive.
The Standard edition (this product) converts the email body and saves attachments next to the output document as their original file types. The Pro X variant adds the -docs attachment-conversion engine, which renders every supported attachment (Word, Excel, PowerPoint, images, PDFs) to the target format and merges them into the same output PDF as the email body. Choose Standard for plain mailbox archival; choose Pro for e-discovery deliverables where the output is one self-contained PDF per email thread.
Total Mail Converter X exposes a COM/ActiveX interface, so any COM-aware language can call it directly: new COM("MailConverter.MailConverterX") in PHP, new MailConverterX() in .NET, win32com.client.Dispatch("MailConverter.MailConverterX") in Python, WIN32OLE.new('MailConverter.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.
MSG (Outlook .msg files, ANSI and Unicode), EML (RFC-822 with optional MIME multipart), MBOX (Thunderbird, Apple Mail, generic Unix mbox). Output: PDF, DOC, DOCX, RTF, HTML, XHTML, TXT, Unicode TXT, TIFF (multi-page), JPEG, EML, MSG, PST. Use -c <FORMAT> to pick the target.
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.
Pass -attach to enable attachment extraction. Attachments land in the same folder as the output PDF by default. Use -atemplate "[mail]_[attach_index]_[attach]" to define a custom naming pattern based on message and attachment metadata. Add -uattach to unpack ZIP attachments automatically so their contents are saved alongside the rest. Add -images to embed inline images directly in the PDF body instead of saving them as files.
Yes. -mp "owner-pwd" sets the owner password (controls permissions); -up "user-pwd" gates opening the file; -perm accepts any combination of Print, HighResPrint, Copy, Modify, Annotation, FormFill. For Bates stamping use -HeadText/-FootText with placeholders [page], [date], [time] and -HeadAlign/-FootAlign to position the text. Combined with -combine -sort date this produces a single Bates-stamped PDF for an entire mail thread.
Yes. The download is a fully functional 30-day trial with all output formats, 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 $950.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 • 128 MB
Pro Suite

Key Features Of Full Registered Version

    Mail converter tailored to YOUR needs.
    • If you have a special requirement
    • If you want additional options

    Contact us. We will gladly enhance our mail converter so that it fit your needs perfectly. Customization is often free to our customers.

    Success stories.

    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.