.NET发送邮件遇到问题及解决方法
程序员文章站
2022-03-10 21:36:44
.net后台代码利用qq邮箱服务器发送邮件遇到的问题:"mail from address must be same as authorization user" ...
.net后台代码利用qq邮箱服务器发送邮件遇到的问题:"mail from address must be same as authorization user"
首先,看下我的代码实现
后台代码:
public class emailhelper { /// <summary> /// 发送邮件 /// </summary> /// <param name="subject">主题</param> /// <param name="body">内容</param> public static void sendemail(string subject,string body) { var mailfrom = configurationmanager.appsettings["mailfrom"]; var mailto = configurationmanager.appsettings["mailto"]; var mailcc = configurationmanager.appsettings["mailcc"]; var smtp = configurationmanager.appsettings["smtp"]; var smtpport = convert.toint32(configurationmanager.appsettings["smtpport"]); var emailaccount = configurationmanager.appsettings["emailaccount"]; var emailpassword = configurationmanager.appsettings["emailpassword"]; //邮件内容信息 mailmessage mailmessage = new mailmessage { from = new mailaddress(mailfrom), subject = subject, body = body, }; mailmessage.to.add(mailto); mailmessage.cc.add(mailcc); //邮箱服务器配置 smtpclient smtpclient = new smtpclient(smtp, smtpport) { credentials = new networkcredential(emailaccount, emailpassword), enablessl = true, }; //发送邮件 smtpclient.send(mailmessage); } }
配置文件:
<appsettings> <!--发送人、收件人、抄件人--> <add key="mailfrom" value="53xxx1314@qq.com"/> <add key="mailto" value="89xxxx734@qq.com"/> <add key="mailcc" value="89xxx734@qq.com"/> <!--邮箱服务器主机地址和端口号--> <add key="smtp" value="smtp.qq.com"/> <add key="smtpport" value="25"/> <!--发送人邮箱账号密码--> <add key="emailaccount" value="53xxx1314"/> <!--此密码非qq密码,而是邮箱生成的密码--> <add key="emailpassword" value="stxxxxxxxxtscbbb"/> </appsettings>
代码已经搞定,剩下的就是跑起来了
第一次跑起来遇到问题就是开头所说的"mail from address must be same as authorization user"
具体为什么会这样呢,我的账号密码没错啊,看了几篇博友的文章后确定是qq邮箱密码出问题了。但是我用qq密码登入邮箱是正常的,然后尝试开启pop/smtp服务,发现了主要问题
qq邮箱的pop/smtp 服务没开启
操作步骤:
进入qq邮箱->设置->账户->滚动到“pop3/imap/smtp/exchange/carddav/caldav服务”
如果是没有开启,那就开启它
我没有开启,点击后需要发送短信,配置邮件客户端
发送短信完毕后,获得了授权码,将授权码替换我在代码中写的qq密码,然后重新跑起来,错误消失,主要是未授权问题
注意,授权码会在qq密码或独立密码修改后而失效 ,需要重新获得。
重新运行,没有问题
问题虽然不是很大,也没有太多技术含量,但是能节省我们再次遇到这种问题,却想不起怎么解决的,回顾起来,总比重新重视要节省时间。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 炒粉丝里面怎么有蚂蚁