Как получить статус отправленных по электронной почте, используя ASP.NET в MVC
Я отправляю электронную почту теперь она работает нормально я хочу сохранить статус каждого письма которое может быть успешным или неудачным
как я мог это сделать?
Что я уже пробовал:
общих асинхронных статических задач SendEmailAsync(строка электронной почты, строки, строку сообщения)
{
пробовать
{
ВАР _email = "xyz@gmail.com";
ВАР _epass = "фрд";
ВАР _displayname = "тестовое сообщение";
MailMessage mymessage = новый MailMessage();
мое сообщение.Для.Добавить(по электронной почте);
// mymessage.Конечную=письмо;
мое сообщение.From = новый почтовый адрес(_email, _displayname);
мое сообщение.Субъект = субъект;
мое сообщение.Тело = сообщение;
мое сообщение.DeliveryNotificationOptions = DeliveryNotificationOptions.Onsuccess процедуры;
мое сообщение.IsBodyHtml = true;
использование (SmtpClient smtp = new SmtpClient()) {
протокол SMTP.EnableSsl = true в;
протокол SMTP.Хозяин = "smtp.gmail.com";
протокол SMTP.Порт = 587;
протокол SMTP.UseDefaultCredentials = false;
протокол SMTP.Учетные данные = новый а networkcredential(_email,_epass);
протокол SMTP.DeliveryMethod = SmtpDeliveryMethod.Сеть;
протокол SMTP.SendCompleted += (ы, е) =&ГТ; { протокол SMTP.Распоряжаться(); };
ожидание smtp.SendMailAsync(mymessage);
}
}
поймать (SmtpFailedRecipientsException экс){
бросок экс;
}
}
F-ES Sitecore
Как вы определяете, что такое успех и что такое неудача?
Richard Deeming
catch (SmtpFailedRecipientsException ex){ throw ex; }Не делай этого. Вы только что уничтожили трассировку стека исключения.
Если вам действительно нужно повторно создать исключение, просто используйте
throw;
вместо throw ex;
.Но в этом случае, поскольку вы ничего не делаете с исключением, которое вы поймали, просто удалите
try..catch
блок вообще.