.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密码或独立密码修改后而失效 ,需要重新获得。

  

   重新运行,没有问题

  

  问题虽然不是很大,也没有太多技术含量,但是能节省我们再次遇到这种问题,却想不起怎么解决的,回顾起来,总比重新重视要节省时间。

 2017-10-22,望技术有成后能回来看见自己的脚步。

.NET下发送邮件遇到问题及解决方案的更多相关文章

  1. VIM、GVIM在WINDOWS下中文乱码的终极解决方案

    文章转自:http://www.liuhuadong.com/archives/68 vim.gvim在windows下中文乱码的终极解决方案在windows下vim的中文字体显示并不好,所以我们需要 ...

  2. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  3. Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  4. win10下安装vs2013无法安装解决方案

    win10下安装vs2013无法安装解决方案 win+r,输入cmd进入命令行 进入界面后选择修复 进入vs_ultimate文件所在目录,输入: vs_ultimate /Uninstall    ...

  5. Linux下发送邮件

    Linux下发送邮件 1.配置 vim /etc/mail.rc 文件尾增加以下内容 set from=ymwugui@linuxidc.com smtp=smtp.sina.com.cn set s ...

  6. Cent OS下发送邮件

    首先安装发送邮件的服务: yum install -y sendmail 安装完成之后在安装mutt yum install -y mutt 安装完成之后我们就可以发送邮件了 mutt     tes ...

  7. vim、gvim 在 windows 下中文乱码的终极解决方案

    vim.gvim 在 windows 下中文乱码的终极解决方案 vim ~/.vimrc 然后加入: " Gvim中文菜单乱码解决方案 " 设置文件编码格式 set encodin ...

  8. Android 在 4G 下访问 IPV6 慢的解决方案

    Android 在 4G 下访问 IPV6 慢的解决方案 Android4G ipv6 起因 今天,用户反馈 Android 端加载数据较慢,经 Android 开发人员排查后,发现在公司 wifi ...

  9. 分布式集群系统下的高可用session解决方案

    目前,为了使web能适应大规模的访问,需要实现应用的集群部署. 而实现集群部署首先要解决session的统一,即需要实现session的共享机制. 目前,在集群系统下实现session统一的有如下几种 ...

随机推荐

  1. 201521123110 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. private不对用户公开进行修改,public用户可以进行修改.代码可以进行继承,即子类继 ...

  2. 201521123057 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 常用异常 1.题目5-1 1.1 截图你的提交结果(出现学号) 答: 1.2 自己以前编写的代码中经 ...

  3. 201521123001《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  4. Spring第二篇和第三篇的补充【JavaConfig配置、c名称空间、装载集合、JavaConfig与XML组合】

    前言 在写完Spring第二和第三篇后,去读了Spring In Action这本书-发现有知识点要补充,知识点跨越了第二和第三篇,因此专门再开一篇博文来写- 通过java代码配置bean 由于Spr ...

  5. python实例编写(7)---测试报告与测试套件(多个py文件,1个py文件内多个用例)

    一.  一个.py文件批量执行测试用例(一个.py文件下多个用例执行) 如果直接使用:unittest.main(),则按字母顺序执行, 对于前后之间又依赖关系的用例,需要按特定的顺序执行,则使用 s ...

  6. OSGi-入门篇之模块层(02)

    1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 在OSGi中模块的定义可以参考 ...

  7. 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法

    在微软云linux服务器成功配置好mysql.tomcat,通过外部链接却发现一直错误.Mysql 一直提示错误代码2003, tomcat连接一直提示EOF. 反复检查配置都无问题,最后得知是微软云 ...

  8. 一个基于Asp.net MVC的博客类网站开源了!

    背景说明: 大学时毕业设计作品,一直闲置在硬盘了,倒想着不如开源出来,也许会对一些人有帮助呢,而且个人觉得这个网站做得还是不错了,毕竟是花了不少心思,希望对你有所帮助. github地址:https: ...

  9. Quartz学习——Quartz简单入门Demo(二)

    要学习Quartz框架,首先大概了解了Quartz的基本知识后,在通过简单的例子入门,一步一个脚印的走下去. 下面介绍Quartz入门的示例,由于Quartz的存储方式分为RAM和JDBC,分别对这两 ...

  10. 调用惯例Calling Convention (或者说:调用约定)

    调用惯例影响执行效率,参数的传递方式以及栈清除的方式.   调用惯例 参数传递顺序 谁负责清除参数 参数是否使用暂存器 register 从左到右 被调用者 是 pascal 从左到右 被调用者 否 ...