1. 程式人生 > >關於QQ郵箱“命令順序不正確。 服務器響應為:Error: need EHLO and AUTH first !”問題

關於QQ郵箱“命令順序不正確。 服務器響應為:Error: need EHLO and AUTH first !”問題

email lse 收件人 opera str mage com cat odin

1、首先在QQ郵箱當中開啟“POP3/SMTP服務”

技術分享圖片

.2、獲取“授權碼

技術分享圖片

剛開始一直使用郵箱的密碼。後面才發現,原來QQ郵箱通過第三方發送郵件應該使用授權碼 o(≧口≦)o

附上騰訊的說明http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28

3、編碼

使用SmtpClient來解決

EnableSsl設置為true

UseDefaultCredentials設置為false

Credentials = new System.Net.NetworkCredential("QQ郵箱", "授權碼");

附上代碼,做個備忘

  1. public static void Send(Email mail,string email)
  2. {
  3. SmtpClient client = new SmtpClient("smtp.qq.com");
  4. client.EnableSsl = true;
  5. client.UseDefaultCredentials = false;
  6. client.Credentials = new System.Net.NetworkCredential("QQ郵箱", "授權碼");
  7. MailAddress from = new MailAddress("QQ郵箱", "顯示名稱", Encoding.UTF8);//初始化發件人
  8. MailAddress to = new MailAddress(email, "", Encoding.UTF8);//初始化收件人
  9. //設置郵件內容
  10. MailMessage message = new MailMessage(from, to);
  11. message.Body = mail.Body;
  12. message.BodyEncoding = mail.BodyEncoding;
  13. message.Subject = mail.Subject;
  14. message.SubjectEncoding = mail.SubjectEncoding;
  15. message.IsBodyHtml = mail.IsBodyHtml;
  16. //發送郵件
  17. try
  18. {
  19. client.Send(message);
  20. }
  21. catch (InvalidOperationException iex)
  22. { }
  23. catch (Exception ex)
  24. { }
  25. }

註意:一定要先設置 EnableSsl和UseDefaultCredentials,再實例化Credentials

關於QQ郵箱“命令順序不正確。 服務器響應為:Error: need EHLO and AUTH first !”問題