【发布时间】:2017-12-09 05:37:25
【问题描述】:
我想做的事:
用户单击 ASP.net 页面上的按钮并打开 Outlook 的“新邮件”窗口。 就这样。
我的问题:
有了这个 -->
using Outlook = Outlook = Microsoft.Office.Interop.Outlook;
OutlookApp outlookApp = new OutlookApp();
MailItem mailItem = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
mailItem.Subject = "Test";
mailItem.HTMLBody = "<html><body>This is the message body</body></html>";
mailItem.Display(false);
以及我尝试过的其他几个代码,我的 IIS Web 服务器上出现安全错误 - 访问被拒绝。但在本地主机上,Outlook 可以正常打开。
我看了一遍,大家都建议NETWORKSERVICE应该是拥有完全安全权限的用户。做过某事。在阅读了更多内容之后,人们建议不要尝试通过 Web 服务器打开 Outlook,原因有几个。所以我决定离开 Interops.Outlook。
然后我也尝试了以下方法,它再次在我的本地主机上工作,但是当发布到 Web 服务器时,单击按钮时没有响应。它实际上什么也没做。
string subject = "Test subject";
string emailTag = string.Format("mailto:someone@test.com?subject={0}", subject);
System.Diagnostics.Process.Start(emailTag);
谢谢
【问题讨论】:
-
你试过
<a href='mailto:mailto:someone@test.com?subject={0}'>Email</a>吗?这就是网站应该这样做的方式。在 IIS 中启动进程将在服务器上而不是在客户端上启动它。 -
不要使用
Microsoft.Office.Interop。如果你应该让它工作,那就是要打开 Outlook 的服务器。不是客户。 -
您正在(试图)在 服务器 上打开 Outlook,而不是在 浏览器所在的计算机 上。您必须让 浏览器 为您完成这项工作 - 不启动新流程,也不自动化 Outlook。
-
@vendettamit 我这样做了。有用。我只想使用按钮而不是链接