C# Outlook电子邮件赢得';web应用程序中的t显示

C# Outlook电子邮件赢得';web应用程序中的t显示,c#,asp.net,outlook,C#,Asp.net,Outlook,我有一个web应用程序,它具有一些功能,允许用户使用Microsoft.Office.Interop.Outlook.application发送电子邮件。我想显示电子邮件,以允许用户在发送之前添加他们可能需要的任何文本。它在localhost中正常工作,但在生产环境中无法显示电子邮件。我的代码如下: OutlookApp outlookApp = new OutlookApp(); MailItem mailItem = outlookApp.CreateItem(OlItemType.olMa

我有一个web应用程序,它具有一些功能,允许用户使用Microsoft.Office.Interop.Outlook.application发送电子邮件。我想显示电子邮件,以允许用户在发送之前添加他们可能需要的任何文本。它在localhost中正常工作,但在生产环境中无法显示电子邮件。我的代码如下:

OutlookApp outlookApp = new OutlookApp();
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);

mailItem.To = address;
mailItem.Subject = subject;
mailItem.HTMLBody = body;

mailItem.Importance = OlImportance.olImportanceNormal;

mailItem.Display(false);
当我使用响应时,Outlook可以正常打开。重定向而不是上面的操作

Response.Redirect("mailto:" + email + "?subject=" + subject + "&body=" + body);

有什么想法/建议吗?

在服务器上创建带有附件等的EML(MIME)邮件,并让用户下载。客户端的Outlook很乐意打开它。不要忘了添加
X-Unsent:1
MIME头,以确保用户可以实际发送它。

您绝对不能这样做,无论您运行的代码是在服务器上运行的,因此即使这样做有效,它也会在服务器上显示邮件,而不是在客户端。是什么阻止您使用第二种方法,哪个将使用客户端邮件应用程序?(除了您应该向urlescape
电子邮件
主题
正文
添加逻辑之外)。JavaScript
window.open('mailto:…')首先,我真的很想从个人角度让它发挥作用,但更重要的是,我希望能够利用自动附加文件的功能,这是第二个选项所不允许的。请改用
MailMessage
SmtpMail
对象。如果您这样做,您的应用程序将需要一个Exchange帐户,但这是在web应用程序中执行操作的一种更干净的方式。@首先,您不一定需要应用程序的Exchange帐户。取决于服务器的配置方式。