2016-01-27 2 views
3

У меня есть процедура C# для отправки писем. Редко процедура вызывает mailItem.send() без ошибок, но Outlook не отправляет почту, а почта не создается в папке Outlook «отправить».Определить, когда «Office.Interop.Outlook» не отправляет почту

Как это обнаружить?

Код является продолжением:

private void sendMail(String mail, String description) 
{ 

    RegistryKey key = Registry.ClassesRoot; 
    RegistryKey subKey = key.OpenSubKey("Outlook.Application"); 

    if (subKey != null) 
    { 


     if ((Process.GetProcessesByName("Outlook").Length == 0) && (Process.GetProcessesByName("Outlook.exe").Length == 0)) 
     { 
      System.Diagnostics.Process.Start("Outlook"); 
     } 


     Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); 
     Microsoft.Office.Interop.Outlook.MailItem mailItem = app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
     mailItem.Subject = "Release Notice"; 
     mailItem.To = mail; 

     String bodyMessage = description; 

     mailItem.Body = bodyMessage; 

     mailItem.Display(false); 
     mailItem.Send(); 

    } 
    else 
    { 
     MessageBox.Show("Impossible to send mails. Contact system administrator.", "System Info", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
} 
+0

попытку окружить посыла-метод с TRY/улова, или же 'mailItem.Send()' дает и возвращаемое значение? –

+0

если mailItem.Send() не терпит неудачу, я проверил бы исходящую почту для сообщения электронной почты, чтобы убедиться, что он готов к отправке. – sr28

+2

@ M.Schena mailItem.Send() является недействительным методом – daniele3004

ответ

2

Если ваш метод send() не отправляет какую-либо ошибку или исключение, то его вполне возможно, что вы не можете обнаружить, если есть какая-либо ошибка/исключение (по крайней мере из кода)

После того, как ваше сообщение будет перенесено на сервер Outlook, это не доступно для проверки состояния. Вы должны полагаться на сервер Outlook для отправки своей электронной почты.

Вы можете обратиться эту статью Джефф Этвуд: So You'd Like to Send Some Email

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