2015-11-17 4 views
0

Я использую очень простой код для создания писем с использованием Outlook в моем приложении C#. Он отлично работает, когда Outlook уже открыт. (Несмотря на то, что он запрашивает разрешение на открытие электронной почты. Но после того, как я предоставил доступ, откроется новое окно сообщения Outlook сгенерированным электронным письмом). Но реальная проблема, если прогноз не открыл сбоя приложения на линииПриложение для почтовой рассылки Outlook C#

Microsoft.Office.Interop.Outlook.Recipient oTORecipt = oMsg.Recipients.Add(email); 

ERROR:An exception (first chance) of type 'System.Runtime.InteropServices.COMException' occurred in Birthday_Mailing.dll.

Additional information: discontinued operation (Exception from HRESULT: 0x80004004 (E_ABORT))

If a handler is available for this exception, the program may continue to run safely.

И весь мой код можно увидеть, как показано ниже

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

Не является ли получателем какой-либо список или массив? Разве у вас нет указателей или ключей? – Gnqz

+0

@Gnqz У меня были индексы, но он тоже выдавал ту же ошибку. И приложение отлично работает при открытии приложения. Поэтому я не думаю, что это настоящая проблема. Что-то не так с разрешением, которое я думаю – Isuru

+0

Какой тип базы данных использует ваш сервер? Вы видели эту статью? https://social.technet.microsoft.com/Forums/sharepoint/en-US/b3ba89ca-48f9-47dd-92e2-c77d8585ac94/operation-aborted-exception-from-hresult-0x80004004-eabort – Gnqz

ответ

0
Microsoft.Office.Interop.Outlook.Inspector oInspector = oMsg.GetInspector; 

Я добавил эту строку после объявления объекта oMsg, который решил проблему. Но еще до того, как откроется окно сообщения, Outlook запрашивает у пользователей разрешение на отображение этого сообщения.

*** Тем не менее, я бы не отметил это как ответ, потому что это не лучшее решение, которое вы можете дать для этого вопроса.

ОБНОВЛЕНИЕ: Я узнал, что вышеупомянутая проблема была вызвана некоторой системой безопасности на нашем сервере. Это правильный ответ. Благодаря @MikeMiller для отображения правильного пути

Смежные вопросы