2017-01-04 4 views
1

Я борюсь с попыткой отправить электронную почту из приложения .NET.ASP.NET C# - Отправка электронной почты с сервера Gmail/Yahoo Live SMTP не работает

Я пробовал все, начиная с создания новой учетной записи как gmail, так и yahoo (изменил хост для yahoo), а также, изменив порт, используя и не используя mail.To, позволяя менее безопасным приложениям, я также попытался включить 2 а также предоставить пароль приложения для gmail, все из которых потерпели неудачу с той же пойманной ошибкой: {«Для SMTP-сервера требуется защищенное соединение или клиент не был аутентифицирован. Ответ сервера: 5.7.1 Требуется аутентификация»}

Это мой код:

SmtpClient smtpClient = new SmtpClient(); 
     System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("[email protected]", "pw"); 
     smtpClient.Credentials = credentials; 
     smtpClient.UseDefaultCredentials = false; 
     smtpClient.Port = 587; 
     smtpClient.EnableSsl = true; 
     smtpClient.Host = "smtp.gmail.com"; 
     smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

     MailMessage mail = new MailMessage(); 
     mail.From = new MailAddress("[email protected]"); 
     mail.To.Add("[email protected]"); 
     mail.IsBodyHtml = true; 
     mail.Subject = txtSubject.Text; 
     mail.Body = txtBody.Text; 
     try 
     { 
      smtpClient.Send(mail); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 
      if (mail != null) 
      { 
       mail.Dispose(); 
      } 
     } 

Решение: так как люди могут иметь проблемы в го В будущем решение заключалось в удалении строки кода: smtpClient.UseDefaultCredentials = false;

+0

Никогда не делайте 'throw ex'' на исключенном исключении. Просто используйте 'throw;', поэтому вы сохраняете свой стек. – mason

+0

Должен ли я изменить Exception ex на просто исключение, а? –

+0

Hi .. tra this ... Opel браузер и Gmail на сервере, где вы его выполняете. Qnd тогда вы должны установить параметр защиты хром, чтобы он мог быть доступен, а пользователь из внешнего –

ответ

0
smtpClient.UseDefaultCredentials = false;    
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("[email protected]", "pw"); 
smtpClient.Credentials = credentials; 

Используйте эти строки в таком порядке.

+0

Выполнение этого в определенной степени повлияло. а не первая ошибка, теперь я получаю ошибку: не удалось отправить почту –

+2

Ничего себе вы ее исправили, ну, я немного ошибся, я удаляю smtpClient.UseDefaultCredentials = false; и теперь это работает. Благодаря :) –

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