Ever wanted to add an email converter functionality to your solution? We offer you a ready-to-use library. All you have to do is to add a few lines of code and your users will be able to save emails as PDF, DOC, TIFF, JPEG, EML, PST files via command line.
Quick answer: To embed email conversion in your own software, license Total Mail ConverterX under a Royalty-Free or Server license, call its command-line or ActiveX interface from your code, pass the source email and target format (PDF, DOC, TIFF, EML, PST), and ship it inside your product. Your users convert emails directly, with no separate install or registration.
Our clients say:
"I am very pleased with the product. So far it has passed all of our initial QA tests. I am making use of the tool programmatically as part of a larger custom stand-alone custom legacy content management system migration. The current legacy system stores email content in MSG format. We recommended that we provide that content in the EML and PDF formats during the migration in order to provide more standardized access to this content. This is where your tool fits in. We have successfully integrated your tool into our migration program to facilitate this task for this customer."
Server License:
If Total Mail ConverterX is licensed with server license terms, you are granted the non-transferable, non-exclusive, and perpetual right to deploy the licensed software to one server to be used in one company by up to 100 employees. One server license restricts to one server. ActiveX is included.
Royalty-free License:
You may implement Total Mail ConverterX into your product and distribute the program to third parties as an integral part of such product. RFL is licensed per project. Your customers are unaware that CoolUtils app is inside, no additional registration from them is required. It's the easiest way for you to add email conversion functionality into your system.
We offer very cost-effective solutions. Prices start from $149.90 per server license!
Total Mail ConverterX is great for any need: email archiving, adding emails to any EDS, retreiving emails for a legal matter or freedon of information requests.
"We licensed Total Mail ConverterX to add email-to-PDF conversion into our helpdesk platform without building a parser from scratch. The command-line interface accepted our source EML files and target PDF format with just a few added lines of code, exactly as promised."
Benjamin Aksoy Software Architect, Aksoy Cloud Systems
"Shipping DOC and TIFF output as part of our own product meant customers convert emails directly inside our app, with no separate install or registration step. The flexible settings covered every format we needed, from PST to JPEG, without extra licensing complications."
Charlotte Reyes Product Manager, Reyes Data Solutions
"Adding this library saved us weeks compared to writing our own EML and MSG parsing logic. The Royalty-Free license terms were reasonable for a small team. Documentation for less common output combinations, like EML back to PST, could be a little more detailed."
Samuel Krantz Backend Developer, Krantz Records Management
Download free trial and convert your files in minutes.
No credit card or email required.
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;