c# 发送邮箱,企业邮箱测试成功

今天在项目中需要实现一个发送邮箱的功能,来实现用户邮箱激活功能!!!

之前采用的是个人的邮箱进行测试,一切都是很顺利的,后来换成了公司的企业邮箱,遇到了一点小问题,问题如下:

发送邮件失败,原因:命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !

 

c# 发送邮箱,企业邮箱测试成功_第1张图片

 

 后来通过百度,找到了原因所在:需要先设置 EnableSsl和UseDefaultCredentials,再实例化Credentials

发送企业邮箱代码如下:

 1         /// 
 2         /// 发送邮箱
 3         /// 
 4         /// 目的邮件地址
 5         /// 激活地址域名
 6         /// 用户标识ID
 7         /// 随机生成邮箱激活码
 8         public static void SendEmail(string mail, string Host, int? UserID, string ActiCode)
 9         {
10             //拼接邮箱激活链接
11             formto = string.Format(formto, Host, UserID, ActiCode);
12             MailMessage mailMsg = new MailMessage();
13             mailMsg.From = new MailAddress(name);//源邮件地址 ,发件人
14             mailMsg.To.Add(new MailAddress(mail));//目的邮件地址。可以有多个收件人.
15             mailMsg.Subject = "陈列专家邮箱激活验证";//发送邮件的标题 
16             mailMsg.Body = "请进行邮箱验证,来激活你在陈列专家中用来接收相关信息的邮箱,点击下面的链接激活您的邮箱:
请单击激活
";//发送邮件的内容 17 mailMsg.IsBodyHtml = true;//是否支持HTML 18 SmtpClient client = new SmtpClient();//smtp.163.com,smtp.qq.com,smtp.exmail.qq.com(qq企业邮箱smtp)发件人使用的邮箱的SMTP服务器。 19 client.Host = "smtp.exmail.qq.com";//设置发送者邮箱对应的smtpserver 20 client.EnableSsl = true; 21 client.UseDefaultCredentials = false; 22 client.Credentials = new System.Net.NetworkCredential(name, upass);//指定发件人的邮箱的账号与密码. 23 client.DeliveryMethod = SmtpDeliveryMethod.Network; 24 try 25 { 26 client.Send(mailMsg);//排队发送邮件. 27 } 28 catch (Exception ex) 29 { 30 throw; 31 } 32 }

调用方法:SendEmail(email, Host, AdminUser.UserID, code);

测试效果图如下:

c# 发送邮箱,企业邮箱测试成功_第2张图片

 

 c# 发送邮箱,企业邮箱测试成功_第3张图片

 

 记一次工作中遇到的问题!

你可能感兴趣的:(c# 发送邮箱,企业邮箱测试成功)