关于发送邮件,错误“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”问题

最近做了一个小程序,通过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.发件邮箱密码为授权码

 各位试试吧。

 

posted @ 2017-04-27 13:36  54tiantian  阅读(2300)  评论(1编辑  收藏  举报