我正在尝试使用以下代码从用户的Outlook发送文件夹发送邮件。但它显示以下错误: 我的代码
try
{
Outlook.Application oApp = new Outlook.Application();
Outlook.NameSpace oNamespace = new Outlook.NameSpace("MAPI");
Outlook.MailItem oMailItem = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMailItem.HTMLBody = bd.Trim();
oMailItem.Subject = sbj.Trim();
Outlook.Recipients oRecips = (Outlook.Recipients)oMailItem.Recipients;
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(bccadd);
oRecip.Resolve();
oMailItem.Send();
oRecip = null;
oRecips = null;
oMailItem = null;
oApp = null;
}
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "');</script>");
//string script = "<script>alert('" + ex.Message + "');</script>";
}
但是我收到以下错误:
使用CLSID检索组件的COM类工厂 {0006F03A-0000-0000-C000-000000000046}由于以下原因而失败 错误:80070005访问被拒绝。 (HRESULT的例外情况:0x80070005 (E_ACCESSDENIED))
答案 0 :(得分:1)
您需要了解始终牢记 ASP.NET页面在服务器上运行,而不是客户端计算机。 Web服务器执行您编写的C#代码(粗略地说)。 C#代码(以及ASPX文件)生成(HTML)内容,然后发送到客户端的浏览器。
您无法使用该代码通过用户的Outlook安装发送电子邮件。您编写的代码尝试通过服务器上安装的Outlook发送电子邮件!