通过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 Task Run(
[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: 完成!