在 C# .NET 中从 .eml 转换为 .msg
Convert from .eml to .msg in C# .NET
我希望我的用户填写一个简单的表单,其中包含“发件人”、“收件人”、“主题”、“正文”和“附件”等字段。完成后,他们应该单击一个按钮,让他们下载一个 .msg 文件,以便他们可以在 Outlook 中进一步编辑并发送它。
我找到的所有 .NET 转换器 API 都是商业的(而且相当昂贵)。
这是我的代码:
using System.Net.Mail;
protected void lbOpenOutlook_Click(object sender, EventArgs e)
{
CreateEmail();
}
internal void CreateEmail()
{
// Create message
MailMessage message = new MailMessage();
// subject
message.Subject = "email subject";
// body content
message.Body = "email message.";
// sender
message.From = new MailAddress("sender@gmail.com");
// send this mail to
message.To.Add("test1@gmail.com");
// cc list
message.CC.Add("ccuser1@gmail.com");
// Create the SMTP Client object
SmtpClient smtpClient = new SmtpClient();
// store in directory
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
// path of the pickup folder
smtpClient.PickupDirectoryLocation = Server.MapPath("~/Emails/");
// deliver email
smtpClient.Send(message);
}
这会生成一个 .eml 文件..我如何使用商业广告将其转换为 .msg whiteout API?
此外,我不想使用 Microsoft.Office.Interop.Outlook 命名空间,因为它在客户端上工作正常,但在服务器上不受支持,而且我的应用程序在 IIS 下是 运行。
注:对答案的评论总结。
虽然 Outlook 2007 不支持打开 .eml 文件,但 Outlook 2010+ 可以正确打开 .eml 文件。
要将 EML 转换为 MSG,您可以使用 Aspose.Email for .Net。
这是一个第三方库,可以为您提供一堆处理电子邮件的有用函数。
电子邮件 API 可用于基本的电子邮件管理功能,如转换、邮件内容附件操作和编辑,以及高级功能,如管理邮件存储文件、通过多种协议发送和接收电子邮件,包括 POP3、 IMAP 和 SMTP。
您可以通过编程方式完成。例如,您可以使用以下代码:
//Initialize .EML file
using (MailMessage eml = new MailMessage("test@from.to", "test@to.to", "template subject", "Template body"))
{
string oftEmlFileName = "EmlAsMSG_out.msg";
MsgSaveOptions options = SaveOptions.DefaultMsg;
//Save created .MSG file
options.SaveAsTemplate = true;
eml.Save(oftEmlFileName, options);
}
我认为这种方法对你有用。
我是 Aspose 的开发人员布道师。
我希望我的用户填写一个简单的表单,其中包含“发件人”、“收件人”、“主题”、“正文”和“附件”等字段。完成后,他们应该单击一个按钮,让他们下载一个 .msg 文件,以便他们可以在 Outlook 中进一步编辑并发送它。
我找到的所有 .NET 转换器 API 都是商业的(而且相当昂贵)。
这是我的代码:
using System.Net.Mail;
protected void lbOpenOutlook_Click(object sender, EventArgs e)
{
CreateEmail();
}
internal void CreateEmail()
{
// Create message
MailMessage message = new MailMessage();
// subject
message.Subject = "email subject";
// body content
message.Body = "email message.";
// sender
message.From = new MailAddress("sender@gmail.com");
// send this mail to
message.To.Add("test1@gmail.com");
// cc list
message.CC.Add("ccuser1@gmail.com");
// Create the SMTP Client object
SmtpClient smtpClient = new SmtpClient();
// store in directory
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
// path of the pickup folder
smtpClient.PickupDirectoryLocation = Server.MapPath("~/Emails/");
// deliver email
smtpClient.Send(message);
}
这会生成一个 .eml 文件..我如何使用商业广告将其转换为 .msg whiteout API?
此外,我不想使用 Microsoft.Office.Interop.Outlook 命名空间,因为它在客户端上工作正常,但在服务器上不受支持,而且我的应用程序在 IIS 下是 运行。
注:对答案的评论总结。
虽然 Outlook 2007 不支持打开 .eml 文件,但 Outlook 2010+ 可以正确打开 .eml 文件。
要将 EML 转换为 MSG,您可以使用 Aspose.Email for .Net。
这是一个第三方库,可以为您提供一堆处理电子邮件的有用函数。 电子邮件 API 可用于基本的电子邮件管理功能,如转换、邮件内容附件操作和编辑,以及高级功能,如管理邮件存储文件、通过多种协议发送和接收电子邮件,包括 POP3、 IMAP 和 SMTP。
您可以通过编程方式完成。例如,您可以使用以下代码:
//Initialize .EML file
using (MailMessage eml = new MailMessage("test@from.to", "test@to.to", "template subject", "Template body"))
{
string oftEmlFileName = "EmlAsMSG_out.msg";
MsgSaveOptions options = SaveOptions.DefaultMsg;
//Save created .MSG file
options.SaveAsTemplate = true;
eml.Save(oftEmlFileName, options);
}
我认为这种方法对你有用。
我是 Aspose 的开发人员布道师。