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";
[color=Red]smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;[/color]
smtpClient.Credentials = new NetworkCredential("用户名", "[color=Red]nsatogkujrazbiac[/color]"); //这边用授权码,不能使用用户密码
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(mailMessage);相关资料
[1].什么是授权码,它又是如何设置:https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256
评论(0)
暂无评论。