我使用一个非常简单的代码在我的c#应用程序中使用outlook生成电子邮件。当Outlook已经打开时,它工作正常。(即使它要求允许打开电子邮件。但在我授予访问权限后,将打开一个新的Outlook消息窗口,其中包含生成的电子邮件)。但真正的问题是,如果未打开Outlook,应用程序会在行
崩溃Microsoft.Office.Interop.Outlook.Recipient oTORecipt = oMsg.Recipients.Add(email);
错误:在Birthday_Mailing.dll中发生了'System.Runtime.InteropServices.COMException'类型的异常(第一次机会)。
附加信息:已停止的操作(HRESULT异常:0x80004004(E_ABORT))
如果处理程序可用于此异常,程序可以继续安全运行。
我的整个代码可以在下面看到
public void SendMail(string email, string name)
{
//// Create the Outlook application by using inline initialization.
Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
////Create the new message by using the simplest approach.
Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
Microsoft.Office.Interop.Outlook.Recipient oTORecipt = oMsg.Recipients.Add(email); //oRecips.Add(t);
oTORecipt.Type = (int)Microsoft.Office.Interop.Outlook.OlMailRecipientType.olTo;
oTORecipt.Resolve();
oMsg.Subject = "Herzlichen Glückwunsch";
oMsg.HTMLBody = "<html>" +
"<head>" +
"<title>Happy Birthday</title>" +
"</head>" +
"<body style='background-color:#E6E6E6;'>" +SelectImage+
"<div style='font-family: Georgia, Arial; font-size:14px; '>Liebe/r " + " " +
name + ",<br /><br />" +
"alles Gute zum <b>Geburtstag!</b> Wir wünschen einen schönen Tag und für das kommende Jahr Gesundheit, Glück und Erfolg." +
"<br /><br /><br /><br /><br />" +
"Mit den besten Grüßen,<br />" +
"XXYYZZ" +
"</div>" +
"</body>" +
"</html>";
oMsg.Save();
oMsg.Display();
oMsg = null;
oApp = null;
我不是编码方面的专家。有人可以帮我找到实际问题所在吗?提前谢谢!
答案 0 :(得分:0)
Microsoft.Office.Interop.Outlook.Inspector oInspector = oMsg.GetInspector;
我在声明了解决问题的oMsg对象后添加了这一行。但仍然在消息窗口打开之前,Outlook要求用户显示电子邮件的权限。
***但我不会将此标记为答案,因为这不是您可以为此问题提供的最佳解决方案。
更新:我发现上述问题是由于我们服务器中的某些安全系统造成的。这是正确的答案。感谢@MikeMiller显示正确的路径