欢迎光临

木子屋

标题: C#发送邮件失败命令顺序不正确need EHLO and AUTH first解决方法

作者: dnawo

日期: 2020-02-17 11:30 PM

分类: Win编程

内容: C#使用QQ邮箱发送邮件，同样的程序，以前正常运行，今天运行失败，提示：
复制内容到剪贴板 程序代码System.Net.Mail.SmtpException:“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”
这是由于QQ邮箱增强了安全机制，在第三方登录QQ邮箱时只能使用专用的密码，此密码称为授权码，授权码不支持自行设置，使用时到QQ邮箱自行申请。
C#发送邮件失败命令顺序不正确need EHLO and AUTH first解决方法
登录QQ邮箱，打开"设置>帐户"，确保已开启POP3/SMTP服务，生成授权码：
然后修改发送邮件程序：
复制内容到剪贴板 程序代码//using System.Net;
//using System.Net.Mail;
//using System.Text;
//电子邮件
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("111111@qq.com", "张三");//发件人
mailMessage.To.Add(new MailAddress("222222@qq.com", "李四"));//收件人
mailMessage.CC.Add(new MailAddress("333333@qq.com", "王五"));//抄送人
mailMessage.Priority = MailPriority.Normal;//优先级
mailMessage.SubjectEncoding = Encoding.UTF8;
mailMessage.Subject = "Happy New Year!";//标题
mailMessage.BodyEncoding = Encoding.UTF8;
mailMessage.IsBodyHtml = true;
mailMessage.Body = "<font color=red>Hello,Happy New Year!</font>";//内容
mailMessage.Attachments.Add(new Attachment(@"F:\mzwucom.jpg"));//附件
//邮件服务器
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.qq.com";
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential("用户名", "nsatogkujrazbiac"); //这边用授权码,不能使用用户密码
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(mailMessage);
相关资料
[1].什么是授权码，它又是如何设置：https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回

标题: C#发送邮件失败命令顺序不正确need EHLO and AUTH first解决方法

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.594 ms

返回