隐藏

system.net.mail.smtpexception:命令顺序不正确

发布:2020/1/16 8:15:53作者:管理员 来源:本站 浏览次数:1278

最近做了一个小程序,通过QQ邮箱服务器发送邮件,

代码写完后,运行调试,出现“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”的问题,

上网查询发现需要先设置 EnableSsl和UseDefaultCredentials,再实例化Credentials 

1.创建控制台程序

2.创建SendMail类,并添加方法SendQQMail()


 1 public void SendQQMail(string strSmtpServer, string strFrom, string strFromPass, string strto,  2 string strSubject, string strBody)  3 {  4 SmtpClient smtpClient = new SmtpClient();  5  6 smtpClient.EnableSsl = true;  7  8 smtpClient.UseDefaultCredentials = false;//先设置  9 10 smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //指定电子邮件发送方式 11 12 smtpClient.Host = strSmtpServer; //指定SMTP服务器 13 14 smtpClient.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass); //用户名和授权码 15 16 // 发送邮件设置 17 18 MailMessage mailMessage = new MailMessage(strFrom, strto); // 发送人和收件人 19 20 mailMessage.Subject = strSubject; //主题 21 22 mailMessage.Body = strBody;//内容 23 24 mailMessage.BodyEncoding = Encoding.UTF8; //正文编码 25 26 mailMessage.IsBodyHtml = true; //设置为HTML格式 27 28 mailMessage.Priority = MailPriority.Low; //优先级 29 30 smtpClient.Send(mailMessage); 31 }

 

3.Main()方法中调用

 1 static void Main(string[] args)  2 {  3  4 #region QQ邮箱邮件发送  5 SendMail email = new SendMail(); //引用此类所在的命名空间后new一个对象出来  6 email.SendQQMail("smtp.qq.com", "发件人@qq.com", "授权码", "收件人@qq.com", "QQ邮箱服务器发送邮件", "用asp.net发送邮件,用QQ的smtp.qq.com服务器,测试成功");  7 Console.WriteLine();  8 Console.ReadLine();  9 #endregion 10 }

 

4.运行,发送成功

 

注意点:

1.QQ邮箱设置中

 

2.发件邮箱密码为授权码

 各位试试吧。