通过Web服务器转换电子邮件
Windows
2000/2003/Vista/7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Mail ConverterX 是一个易于使用的工具,可以将 电子邮件 (.msg, .eml) 转换为 Windows 网络服务器上的 PDF、TXT、HTM、RTF、DOC 文件。这是存档您可能需要在将来打开的业务电子邮件的最简单方法。Total Mail ConverterX 支持多种目标格式(DOC、RTF、PDF、XPS、HTML、XHTML、TXT、TIFF、JPEG、EML、MSG、PST)。Total Mail ConverterX 在您的服务器上静默运行 - 没有用户界面,没有额外的弹出窗口,不需要看护。
Total Mail ConverterX 像带有 GUI 的常规 Total Mail Converter 一样强大。您可以一次性转换任意数量的电子邮件(是的,成千上万的),并通过新名称、页面计数器、贝茨编号、安全设置等来增强输出文件。
附件可以被提取并放置在相同或新文件夹中。应用程序可以为您的附件文件提供新名称,以便您始终知道哪个附件属于哪个电子邮件。专业版可以将附件文件与电子邮件正文一起转换。
Total Mail ConverterX 非常易于使用,不需要任何特殊知识。您可以轻松地通过 ActiveX 将其实现到您的应用程序或系统中。价格也非常实惠(一次性付费,终身许可证,无需订阅)。立即获取您的副本!
在 C# 的 ASP.net 示例中找到一些示例。如果您需要其他语言的示例,请联系我们。我们将为您专门创建任何示例。
附注:看看 Total Folder Monitor。它将监视任何文件夹,并在有新文件到达时运行 Total Mail Converter。可以在这里找到更多详细信息。
string src="C:\\test\\Source.Mail"; string dest="C:\\test\\Dest.PDF"; MailConverterX Cnv = new MailConverterX(); Cnv.Convert(src, dest, "-c PDF -log c:\\test\\Mail.log"); MessageBox.Show("转换完成!");
下载 .NET 邮件转换器示例
docker run -p 5000:5000 tdhster/mailconverter-api
public static class Function1 { [FunctionName("Function1")] public static async TaskRun( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { StringBuilder sbLogs = new StringBuilder(); sbLogs.AppendLine("开始..."); 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 msgPath = $@"{assemblyDirectoryPath}\MSG\MSG-1.msg\"; var outPath = Path.GetTempFileName() + ".pdf\"; startInfo.FileName = executablePath; if (File.Exists(outPath)) { File.Delete(outPath); } if (File.Exists(executablePath) && File.Exists(msgPath)) { sbLogs.AppendLine("文件存在..."); } else sbLogs.AppendLine("EXE和MSG文件不存在..."); startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.Arguments = $" {msgPath} {outPath}"; using (Process exeProcess = Process.Start(startInfo)) { sbLogs.AppendLine($"等待...{DateTime.Now.ToString()}"); exeProcess.WaitForExit(); sbLogs.AppendLine($"完成...{DateTime.Now.ToString()}"); } int sleepCounter = 10; while(!File.Exists(outPath) && sleepCounter > 0) { System.Threading.Thread.Sleep(1000); sbLogs.AppendLine("睡眠..."); sleepCounter--; } if (File.Exists(outPath)) sbLogs.AppendLine("转换成功完成。"); } 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:\html.log") set C = nothing
PHP示例: $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, "-c pdf -log c:\\Mail.log"); if (file_exists($dest)) echo "OK"; else echo "失败:" .$c->ErrorMessage;
require 'win32ole' c = WIN32OLE.new('MailConverter.MailConverterX') src="C:\\test\\test.pdf"; dest="C:\\test\\test.tiff"; c.convert(src,dest, "-c TIFF -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.tiff"; c.convert(src, dest, "-c TIFF -log c:\\test\\Mail.log"); if not os.path.exists(file_path): print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto; var c: OleVariant; begin c:=CreateOleObject('MailConverter.MailConverterX'); C.Convert('c:\test\source.eml', 'c:\test\dest.tiff', '-c TIFF -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", "-c PDF"); if (c.ErrorMessage!="") alert(c.ErrorMessage)
use Win32::OLE; my $src="C:\\test\\test.eml"; my $dest="C:\\test\\test.tiff"; my $c = CreateObject Win32::OLE 'MailConverter.MailConverterX'; $c->convert($src,$dest, "-c TIFF -log c:\\test\\Mail.log"); print $c->ErrorMessage if -e $dest;
"我在Freeland Cooper & Foreman LLP工作,目前正在处理我们为其购买Total Mail Converter的项目。我们购买该程序是为了将大量的.msg文件合并为.pst格式,到目前为止,我对结果非常满意;它可靠、高功能且易于使用。"
Max Canin
www.freelandlaw.com
"我们使用SharePoint作为文档库,并通过UNC访问。我使用TotalMailConverterX来归档电子邮件。我使用主题作为结果文件名的一部分,但这带来了一个问题。SharePoint不允许文件名中包含某些字符。我想知道是否可以添加一个命令行选项来去除在SharePoint UNC路径中使用的不安全字符。"
Shane Adam
系统分析师和开发人员,http://eigltd.com
Update Aug 2015: 完成!