2014-09-22 4 views
0

У меня есть веб-сайт, которому необходимо отправить электронное письмо по конкретному действию.Неизвестный отказ при отправке электронной почты при использовании Async

 var mail = new MailMessage("[email protected]", 
        "[email protected]", "Generic Subject Title", 
        string.Format("Some body content"); 

     using (var eServer = new SmtpClient("mailsrv.mycompany.com")) 
     { 
      eServer.Send(mail); 
     } 

Приведенный выше код работает отлично, хотя Send функция занимает от 8-15 секунд до завершения, то я получаю по электронной почте через несколько секунд. Я хотел бы как можно скорее удалить задержку в ответе на страницу.

 using (var eServer = new SmtpClient("mailsrv.mycompany.com")) 
     { 
      eServer.SendMailAsync(mail); 
     } 

При использовании приведенного выше моя страница загружается быстро и завершает все остальные процессы, но я никогда не получаю письмо.

У кого-нибудь есть идея, почему я не получил бы электронное письмо просто потому, что я использую версию Async?

ответ

1

Из-за используемого блока вы удаляете переменную «eServer», прежде чем она сможет отправить почту. Если вы используете SendMailAsync, вы не должны напрямую распоряжаться SmtpClient впоследствии.

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