2016-07-23 3 views
0

Я создал приложение Windows, которое используется для отправки электронной почты. Я дал полномочия. Я включил google/settings/lesssecure apps. Несмотря на то, что он не отправляет. Он показывает ошибку Для SMTP-сервера требуется безопасное соединение, или клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация вот мой код.Почта Gmail не может быть отправлена ​​через C#

MailMessage message = new MailMessage(); 
      message.From = new MailAddress("[email protected]"); 
      string[] mailaddress = new string[count]; 
      int i; 
      if (textSubject.Text != string.Empty) 
      { 
       message.Subject = textSubject.Text; 
       if (textBody.Text != string.Empty) 
       { 
        message.To="[email protected]" 
        message.IsBodyHtml = true; 
        string tmpBody = "Hello " + "," + "<br/> <br/>" + textBody.Text + "<br/> <br/>" + "Thanks and Regardds"; 
        message.Body = tmpBody; 
        SmtpClient client = new SmtpClient(); 
        client.UseDefaultCredentials = true; 
        client.Host = "smtp.gmail.com"; 
        client.Port = 587; 
        client.UseDefaultCredentials = false; 
        client.Credentials = new NetworkCredential("[email protected]", "mypassword"); 
        message.Priority = MailPriority.High; 
        client.EnableSsl = true;    
        client.Send(message); 
        MessageBox.Show("Mail has sent successfully !!!", "Success !"); 
       } 
       else 
       { 
        MessageBox.Show("Please Enter Body of the Message !"); 
       } 
      } 
      else 
      { 
       MessageBox.Show("Please Enter Subject !"); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Failure !"); 
      log.Fatal(ex.Message); 
     } 
    } 
+1

Возможный дубликат [это] (http://stackoverflow.com/questions/20906077/gmail-error-the- smtp-server-require-a-secure-connection-or-the-client-was-not) – Berkay

+0

Вы не можете сделать это ** message.To = "[email protected]" ** потому что свойство «Кому» - это только чтение MailAddressCollection сообщений электронной почты. Попробуйте ** message.To.Add ("[email protected]"); ** – derloopkat

ответ

1

При включении 2-ступенчатым проверки, то вам необходимо войти в систему с помощью приложения-Specific-пароль. Вы можете создать его здесь: https://support.google.com/accounts/answer/185833?hl=en. Если вы используете свой обычный пароль, вы получите исключение: 5.5.1 Требуется аутентификация. Вам не нужно много кода, этот код достаточно, чтобы отправить электронную почту без привязанности:

const string from = "[email protected]"; 
    const string to = "[email protected]"; 
    const string subject = "This is subject"; 
    const string body = "This is body"; 
    const string appSpecificPassword = "akdfkajsdhklakdfh"; 

    var mailMessage = new MailMessage(from, to, subject, body); 
    using (var smtpClient = new SmtpClient("smtp.gmail.com", 587)) 
    { 
    smtpClient.EnableSsl = true; 
    smtpClient.Credentials = new NetworkCredential(from, appSpecificPassword); 
    smtpClient.Send(mailMessage); 
    } 
+0

thank u ... идеальное решение для моей проблемы –