在我的开发机器中,我开发了一种无问题的方法。它是一个简单的按钮,当我点击它打开一个带有电子邮件地址和一些内容的Outlook电子邮件但是当我将代码发送到生产环境时......所有用户都在页面的page_load上收到错误,其中设置了以下方法
protected void btnSendEmail_Click(object sender, ImageClickEventArgs e)
{
//...
Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook._MailItem oMailItem = (Microsoft.Office.Interop.Outlook._MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
string name = someDataTable.Rows[0]["NAME"].ToString();
string url = HttpContext.Current.Request.Url.AbsoluteUri;
oMailItem.To = someEmail@Gmail.com;
oMailItem.Body = string.Format("hi {0}, \n \n [Insert the content mail here.] \n \n {1} ", name, url);
oMailItem.Subject = "Some Title";
oMailItem.Display(false);
}
答案 0 :(得分:1)
Microsoft Office Interop程序集将在服务器上打开Outlook(假设Outlook已安装在服务器上),而不是在客户端上。这是你的意图吗?
服务器端不支持Microsoft Office Interop程序集。请参阅KB Article。
我建议您切换到其他一些技术。如果您只是想让服务器发送电子邮件,请尝试查看System.Net.Mail命名空间。见How To Send An Email With C#.
如果您打算在客户端启动Outlook新电子邮件窗口,则可以使用简单的HTML锚链接轻松完成。请参阅Sending HTML in mailto anchor tag。