【发布时间】:2019-11-28 20:28:22
【问题描述】:
我希望我的用户填写一个简单的表单,其中包含“发件人”、“收件人”、“主题”、“正文”和“附件”等字段。完成后,他们应该单击一个按钮,让他们下载 .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 文件。我如何使用商业 API 将其转换为 .msg whitout?
另外,我不想使用 Microsoft.Office.Interop.Outlook 命名空间,因为它在客户端上运行良好,但在服务器上不受支持,而且我的应用程序在 IIS 下运行。
【问题讨论】:
-
您可以将 Outlook 插件分发给您的用户,以便他们可以在客户端上进行 eml 到 msg 的转换。
-
Outlook 也会打开 eml 文件
-
我正在部署一个 Web 应用程序,我无法向我的所有用户发送插件。 @DanL 我有 Office 2007 SP3(不是 Express),但没有。
-
为什么你不能在你的网站上提供一个链接,并告诉用户他们必须安装你的插件才能在 Outlook 中打开电子邮件? “云”服务要求用户安装一些客户端软件并非闻所未闻。
-
@AlexanderD 我有 Office 2010(不是 Express),它确实打开了 eml,因为我今天已经打开了大约 16 个 eml 文件。如果使用低于 Office 2010 的用户比例足够小,您仍然可以将其视为一个选项。干杯,丹