使用自己的QQ邮箱发送自动发送邮件

2020-04-03 08:53:06

话说网上发送邮件的代码很多,但是我由于不细心,导致拿别人的代码发送邮件老是失败,今天就说说几个要注意的地方吧!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public bool SendEmail()
 {
     MailMessage msg = new MailMessage();
 
     msg.To.Add("to@qq.com");//收件人地址 
     msg.CC.Add("cc@qq.com");//抄送人地址 
 
     msg.From = new MailAddress("from@qq.com""Edward");//发件人邮箱,名称 
 
     msg.Subject = "This is a test email from QQ";//邮件标题 
     msg.SubjectEncoding = Encoding.UTF8;//标题格式为UTF8 
 
     msg.Body = "this is body";//邮件内容 
     msg.BodyEncoding = Encoding.UTF8;//内容格式为UTF8 
 
     SmtpClient client = new SmtpClient();
 
     client.Host = "smtp.qq.com";//SMTP服务器地址 
     client.Port = 587;//SMTP端口,QQ邮箱填写587 
 
     client.EnableSsl = true;//启用SSL加密 
      //发件人邮箱账号,授权码(注意此处,是授权码你需要到qq邮箱里点设置开启Smtp服务,然后会提示你第三方登录时密码处填写授权码)
     client.Credentials = new System.Net.NetworkCredential("from@qq.com""password");
 
     try
     {
         client.Send(msg);//发送邮件
     }
     catch (Exception)
     {
         return false;
     }
     return true;
 }

  网上类似这段代码的代码很多,但是大多数都说的是client.Credentials = new System.Net.NetworkCredential("from@qq.com", "password")这块写的是password,其实可能之前的前辈们用的时候QQ邮箱需要的是密码,但是现在qq邮箱需要的则是授权码,下面就说怎么拿到这个授权码吧!

  首先发送邮件要开启一个smtp的服务(ps:我这菜鸟还是不久前才知道的,不过好像outlook不是smtp,反正协议很多的)

 第一步:打开qq邮箱点击设置:

 

   然后还有两步你就成功了

 第二步:点击账户

 

第三步:向下拉找到smtp字样的地方,然后全部开启

相信你能理解这句话,然后你开启的时候会自动弹出授权码,如果没有当时没有复制粘贴可以点击生成授权码 ,来重新生成:

就是这个东东了,拿这个复制粘贴到你代码的password处即可(ps:本菜鸟被坑的很惨啊,再说多一句163的邮箱也是这样的,只有开启smtp服务才能拿到授权码)


  • 2017-01-19 00:45:56

    nodejs之process进程

    虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作。

  • 2017-01-19 01:05:32

    process对象

    process对象是Node的一个全局对象,提供当前Node进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。

  • 2017-01-20 21:59:11

    WEBPACK DEV SERVER

    webpack-dev-server是一个小型的node.js Express服务器,它使用webpack-dev-middleware中间件来为通过webpack打包生成的资源文件提供Web服务。它还有一个通过Socket.IO连接着webpack-dev-server服务器的小型运行时程序。

  • 2017-01-21 10:32:29

    Vue-cli proxyTable 解决开发环境的跨域问题

    和后端联调时总是会面对恼人的跨域问题,最近基于Vue开发项目时也遇到了这个问题,两边各自想了一堆办法,查了一堆资料,加了一堆参数,最后还得我把自己的localhost映射成上线时将要使用的域名。

  • 2017-01-21 21:44:29

    详解 ESLint 规则,规范你的代码

    在很久之前就想通过工具来规范自己的代码风格,减少程序出错的概率,如果看过我的 一个前端程序猿的Sublime Text3的自我修养 ,这篇博客的朋友,肯定知道在当时我使用 SublimeLinter-jshint 插件来规范风格,但是实际上一直懒癌发作也没去看它的文档,使用着它默认的规则。不过现在是时候切换到 ESLint 了!