2015-10-03 7 views
0

Я получаю немного неприятности, когда я пытаюсь с помощью SMTP и MailMessage в C#:аутентификации SMTP с помощью GMAIL, ошибка 5.5.1

Это мой первый раз, используя SMTP и MailMessage, так что это может быть неправильно некоторые строки, но это то, что я сделал до сих пор, и мне нужна помощь от вас, ребята.

Я искал много вещей об этом, а также здесь, в stackoverflow, но до сих пор я не могу больше думать о том, что я делаю с ним неправильно. При попытке запуска (в режиме отладки и нормальный пробег) мои Application Console(только тесты на консоли, довольно простой) это дает мне эту error

Сервер SMTP требует безопасной соединение или клиент не был аутентифицирован. Ответ сервера: 5.5.1 Требуется аутентификация. Узнайте больше на

я понял следующее сообщение об ошибке на Visual Studio 2013, проблема в том, что я не очень хорошо знать свойства и методы класса Smtp и MailMessage, а затем это делает я не понимаю, что я делаю неправильно в коде,

ниже, class Email на Применение моей консоли

/// <summary> 
    /// Email Server 
    /// </summary> 
    protected SmtpClient SmtpClient { get; set; } 

    /// <summary> 
    /// Message Content 
    /// </summary> 
    protected MailMessage MailMessage { get; set; } 
    #endregion 

    /// <summary> 
    /// Método enviar e-mail 
    /// </summary> 
    /// <param name="smtp"></param> 
    /// <param name="from"></param> 
    /// <param name="to"></param> 
    /// <param name="subject"></param> 
    /// <param name="body"></param> 
    /// <param name="priority"></param> 
    public string EnviarEmail(string smtp, string from, string to, string subject, string body, bool priority) 
    { 
     try 
     { 
      SmtpClient = new SmtpClient(); 
      SmtpClient.Host = "smtp.gmail.com"; 
      SmtpClient.Port = 587; 
      SmtpClient.EnableSsl = true; 
      SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
      SmtpClient.Credentials = new NetworkCredential("[email protected]","mypassword"); 
      SmtpClient.UseDefaultCredentials = true; 

      MailMessage = new MailMessage(); 
      MailMessage.From = new MailAddress(from, "Raffa Ferreira", Encoding.UTF8); 
      MailMessage.To.Add(new MailAddress(to, "Fulano teste", Encoding.UTF8)); 

      MailMessage.Subject = subject; 
      MailMessage.Body = body; 
      MailMessage.BodyEncoding = Encoding.UTF8; 
      MailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1"); 

      if (priority == false) 
      { 
       MailMessage.Priority = MailPriority.Normal; 
      } 
      else 
      { 
       MailMessage.Priority = MailPriority.High; 
      } 

      SmtpClient.Send(MailMessage); 
     } 
     catch(SmtpFailedRecipientException ex) 
     { 
      Console.WriteLine("Mensagem : {0} " + ex.Message); 
     } 
     catch(SmtpException ex) 
     { 
      Console.WriteLine("Mensagem SMPT Fail : {0} " + ex.Message); 
     } 
     catch(Exception ex) 
     { 
      Console.WriteLine("Mensagem Exception : {0} " + ex.Message); 
     } 

     string mensagem = "E-mail enviado"; 
     return mensagem; 
    } 

И Program Я звоню это class Email передавая некоторые параметры:

class Program 
{ 
    static void Main(string[] args) 
    { 
     string smtp = "smtp.live.com"; 
     string from = "[email protected]"; 
     string to = "[email protected]"; 
     string subject = "COMMUNICATE"; 
     string body = "Hello, this is a text of a test message for you" 

     Email email1 = new Email(); 
     email1.EnviarEmail(smtp, from, to, subject, body, true); 

    } 
} 

Я просто поспрашивать здесь, на stackoverflow, когда я не могу найти ответ на некоторые мои сомнения больше, поэтому мне нужна помощь. Поскольку я впервые использовал SMTP и MailMessage ....!

Почему у меня такая ошибка? Это что-то не так в коде? И что это?

+0

Возможный дубликат [Отправка электронной почты через SMTP-сервер Gmail с помощью C#] (http://stackoverflow.com/questions/704636/sending-email-through-gmail-smtp -server-with-c-sharp) –

ответ

0

Попробуйте установить UseDefaultCredentials на номер false.

MSDN article От:

«Установите это свойство верно, когда это SmtpClientobject следует, если запрашивается сервером, аутентификации с использованием учетных данных по умолчанию для текущего пользователя."

...

„Если свойство UseDefaultCredentials установлено значение ложно, то будет использоваться значение, установленное в свойстве Credentials“

+0

Отлично, спасибо! –

0

Я просто решить эту проблему. В Google Войти и безопасности , установите для параметра «Разрешить небезопасное применение» значение true.