2015-07-01 20 views
0

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

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at...

Трассировка стека можно найти здесь:

System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at

at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)

at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)

at System.Net.Mail.SmtpClient.Send(MailMessage message)

at Repetrel.View.EmailForm.btnSend_Click(Object sender, EventArgs e) in c:\2015 Hyrel Projects\Repetrel\src\Repetrel\View\EmailForm.cs:line 238

Здесь мой код:

  NetworkCredential loginInfo = new NetworkCredential(Properties.Settings.Default.MyEmailAddress, Properties.Settings.Default.MyEmailPassword); 
      //System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient(Properties.Settings.Default.SMTPAddress); 
      ////Trace.WriteLine("smtp = " + Properties.Settings.Default.SMTPAddress); 
      //smtpClient.Port = 587; 
      //smtpClient.EnableSsl = true; 
      //smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
      ////smtpClient.UseDefaultCredentials = false; 
      //smtpClient.Credentials = loginInfo; 

      var smtpClient = new SmtpClient 
      { 
       Host = "smtp.gmail.com", 
       Port = 587, 
       EnableSsl = true, 
       DeliveryMethod = SmtpDeliveryMethod.Network, 
       UseDefaultCredentials = true, 
       Credentials = loginInfo, 
       Timeout = 20000 
      }; 

      //smtpClient.SendAsync(message, "test"); 
      smtpClient.Send(message); 

      //Output to log 
      OutputToLog(message); 

      //Close Window 
      Close(); 
     } 
     catch (Exception ex) 
     { 
      Trace.WriteLine(ex.ToString()); 
      MessageBox.Show("An error occurred. Please see the trace log for more information."); 
     } 

Я попробовал все, упомянутые в предыдущих постах (есть многие из них), но ничего не похоже на работу. Я попытался с и без учетных данных по умолчанию и установил флаг в false/true. Ничто не работает. Может ли кто-нибудь указать мне в правильном направлении?

Заранее благодарен!

+0

К сожалению, вы остановили свою цитату в разделе «Узнайте больше ...». Вы пытались узнать больше в этом месте? Можете ли вы раскрыть это место? –

+0

Цитата получает обрезание в ошибке на моей машине. Вы видите все, что я вижу на своей машине. –

+0

А, ваши параметры трассировки не очень толерантны - возможно, вы могли бы сбрасывать 'ex.ToString()' в файл и читать этот файл, а также ссылки, которые он содержит? Вы всегда можете вернуться к нам после того, как исчерпаете предлагаемые там решения. –

ответ

0

Возможно, UseDefaultCredentials = false,?

Edit: Это, кажется, похоже на старший StackOverflow вопрос: SmtpClient with Gmail

+0

Я пробовал делать это, ничего хорошего. –