2015-04-21 62 views
1

我需要從我的程序發送一封電子郵件我寫了這個代碼,但沒有奏效錯誤是如何從c#程序發送電子郵件?

「樂serveur SMTP requiert UNE聯接sécurisée歐樂客戶端n'étaitPASauthentifié。香格里拉REPONSE杜serveur était:5.7.0必須首先發出STARTTLS命令e2sm19845644wix.15 - gsmtp「

翻譯:

」。SMTP服務器要求安全連接或客戶端未通過身份驗證的服務器資源ponse是:5.7.0必須發出STARTTLS命令第一e2sm19845644wix.15 - gsmtp 「

private void button3_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     MailMessage mail = new MailMessage(); 
     SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

     SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "xxx"); 
     mail.From = new MailAddress("[email protected]"); 
     mail.To.Add(textBox4.Text); 
     mail.Subject = "Attention"; 
     mail.Body = textBox1.Text + textBox2.Text + textBox3.Text + "est absent de " + comboBox5.SelectedValue + "a" + comboBox4.SelectedValue; 

     SmtpServer.Port = 587; 



     SmtpServer.Send(mail); 
     SmtpServer.EnableSsl = true; 
     MessageBox.Show("mail Send"); 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 

我改變了我的代碼如下建議,並得到了新的錯誤

」 樂德來德attente DE L'操作到期「

翻譯:

「事務超時已過期」

private void button3_Click(object sender, EventArgs e) 
{ 
     try 
     { 
      SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
      MailMessage mail = new MailMessage(); 
      SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "xxxxx"); 
      SmtpServer.UseDefaultCredentials = false; 

     mail.From = new MailAddress("[email protected]"); 
     mail.To.Add(textBox4.Text); 
     mail.Subject = "Attention"; 
     mail.Body = textBox1.Text + textBox2.Text + textBox3.Text + "est absent de " + comboBox5.SelectedValue + "a" + comboBox4.SelectedValue; 

     SmtpServer.Port = 465; 

     SmtpServer.EnableSsl = true; 

     SmtpServer.Send(mail); 

     MessageBox.Show("mail Send"); 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 
+5

請將您的錯誤信息轉換爲英文。 –

+0

您是否使用憑證對您的憑證進行了身份驗證,看起來您的身份驗證存在問題 – Coder1409

+1

交易超時已過期 –

回答

3

你需要設置SmtpServer.EnableSsl = true;你才能叫SmtpServer.Send(mail);之前是有效的。

由於我對法語的知識有限,所以我會說這條消息會要求您使用STARTTLS的安全連接。谷歌說,當你使用端口587時,你需要使用TLS,如here所述。所以也許你考慮使用端口465,它表示使用SSL而不是587-TLS端口。

Here is another post這可以很好地解釋如何通過gmail發送電子郵件。它也清楚地表明,在分配實際的憑證之前,您需要設置UseDefaultCredentials = false

+0

這是新的錯誤「請重新連接客戶端或客戶端無法驗證。」回覆消息:5.5。 1需要驗證,請通過「 –

+2

瞭解更多信息對不起,我的法語在這裏結束^。^請翻譯成英語。 –

+0

hhhh是很高興:p –

1
try 
      { 
       MailMessage mail = new MailMessage(); 
       SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
       mail.From = new MailAddress("[email protected]"); 
       mail.To.Add("[email protected]"); 
       mail.Subject = "Subject of email..."; 
       mail.Body = "Body of email..."; 
       SmtpServer.Port = 587; 
       SmtpServer.Credentials = new System.Net.NetworkCredential("gmailusername", "gmailpass"); 
       SmtpServer.EnableSsl = true; 
       SmtpServer.Send(mail); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString()); 
      }