欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-03 12:45:38
今天在项目中需要实现一个发送邮箱的功能,来实现用户邮箱激活功能!!! 之前采用的是个人的邮箱进行测试,一切都是很顺利的,后来换成了公司的企业邮箱,遇到了一点小问题,问题如下: 发送邮件失败,原因:命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first ! 后来 ......

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

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

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

 

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

 

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

发送企业邮箱代码如下:

 1         /// <summary>
 2         /// 发送邮箱
 3         /// </summary>
 4         /// <param name="mail">目的邮件地址</param>
 5         /// <param name="host">激活地址域名</param>
 6         /// <param name="userid">用户标识id</param>
 7         /// <param name="acticode">随机生成邮箱激活码</param>
 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 = "请进行邮箱验证,来激活你在陈列专家中用来接收相关信息的邮箱,点击下面的链接激活您的邮箱:<br><a target='_blank' style='color:#0041d3;text-decoration:underline' href='" + formto + "'>请单击激活</a>";//发送邮件的内容 
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# 发送邮箱,企业邮箱测试成功

 

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

 

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