使用Microsoft.Office.Interop.Outlook“发送电子邮件”

时间:2014-01-07 14:29:21

标签: c# asp.net webforms outlook

在我的开发机器中,我开发了一种无问题的方法。它是一个简单的按钮,当我点击它打开一个带有电子邮件地址和一些内容的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);
}

1 个答案:

答案 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

相关问题