无法从Outlook发送邮件

时间:2014-03-04 13:18:42

标签: c# javascript asp.net outlook

我正在尝试使用以下代码从用户的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))

1 个答案:

答案 0 :(得分:1)

您需要了解始终牢记 ASP.NET页面在服务器上运行,而不是客户端计算机。 Web服务器执行您编写的C#代码(粗略地说)。 C#代码(以及ASPX文件)生成(HTML)内容,然后发送到客户端的浏览器。

您无法使用该代码通过用户的Outlook安装发送电子邮件。您编写的代码尝试通过服务器上安装的Outlook发送电子邮件