关于发送邮件,错误“命令顺序不正确。 服务器响应为: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.发件邮箱密码为授权码
各位试试吧。
做一个快乐的小码农,工作全会,考试全对~