今天我带大家实现下简单的发邮件功能。我们要使用到email和smtplib库,这两个库时python自带的,直接import 引用就好了,实现环境python3.6.

  • 对QQ邮箱进行开启SMTP服务

         开启SMTP服务可以查看此链接,讲的很详细: https://jingyan.baidu.com/article/b0b63dbf1b2ef54a49307054.html

如下图:需要开启POP3/SMTP 服务,获取到的授权码,就是你登陆时需要用到的。

     

  • 使用QQ邮箱进行邮件发送: 代码如下

第一步:登陆QQ邮箱。

第二步:构建发件人,收件人,邮件标题,邮件内容等信息。

第三步:发送邮件。

 1 import smtplib
2 import email
3 from email.mime.text import MIMEText
4 from email.header import Header
5 from email.mime.multipart import MIMEMultipart
6
7 #纯文本格式发送email
8 def email_sendmail_txt(sender,receiver,title,message):
9 username = "67xxxx305@qq.com"
10 password_pop3 = "veixxxxxkmflxxgb"
11 #password_imap = "wpxxxxxyjnxxbcje"
12 smtp = smtplib.SMTP()
13 smtp.connect('smtp.qq.com')
14 smtp.login(username, password_pop3)
15 msg = MIMEText(message, "plain", 'utf-8')
16 msg["Subject"] = Header(title, 'utf-8')
17 msg["From"] = sender
18 msg["To"] = receiver
19 to_address = receiver.split(',') #将Str格式的receiver分割成list格式,才能发送邮件给多个人。
20 smtp.sendmail(sender, to_address, msg.as_string())
21 smtp.quit()
22
23 if __name__ == "__main__":
24
25 sender = "67xxxx305@qq.com"
26 receiver = 'lixx@vaxxxxxch.com,67xxxx305@qq.com'
27
28 mail_message = 'Dear all,\n 今日CP3良率监控情况如下所示:\n 您们好,我是TE助理1号,很高兴加入TE group,我会努力为大家提供服务,希望大家能够喜欢我,谢谢!\n'
29
30 mail_title = "CP3 yield monitor"
31
32 email_sendmail_txt(sender,receiver,mail_title,mail_message) #登陆QQ邮箱并发送消息
  • 问题总结
  1. 用email_sendmail 发送邮件,明明有很多个接收人,但是只有第一个人能收到邮件。

         ->:原因在于msg["To"] = receiver 的类型为str,而email_sendmail 中to_address 参数则需要是list格式,两者参数不一样。

两者如果混用,导致结果就是,发送的mail显示是有很多个收件人,可是成功收取邮件的只有第一个人而已。

              从smtplib.py中找到sendmail 函数定义就可以看到。

解决办法:如下图只需要将msg["To"] = receiver str类型的内容通过split()进行分割成list格式,就解决了!!!

Python 使用QQ 邮箱进行发送邮件及经验总结的更多相关文章

  1. python QQ邮箱自动发送邮件

    于初学者来讲在写发送邮件代码时常见的错误有SMTPAuthenticationError535,有点懵逼,检查用户名,密码正确就是报错, 想当年笔者也是这么过来的,现在就给大家分享一下个人经验: 一, ...

  2. Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError

    最新在学习Python的基础入门系列课程,今天学习到使用python 的内置库smtplib发送邮件内容. 使用Python发送邮件步骤简单: 创建SMTP连接 使用邮箱和密码登录SMTP服务器 创建 ...

  3. python使用qq邮箱向163邮箱发送邮件、附件

    在生成html测试报告后 import smtplib,time from email.mime.text import MIMEText from email.mime.multipart impo ...

  4. C#如何利用QQ邮箱SMTP发送邮件

    public void SendEmail() { MailMessage msg = new MailMessage(); msg.To.Add("to@qq.com");//收 ...

  5. 用JavaMail通过QQ邮箱来发送邮件(第一篇博客,备忘)

    1.先启用QQ邮箱里POP3/STMP服务:生成授权码 2.导入mail.jar包(不要用太古董的技术,你懂得) 3.注意要在代码里加上开启SSL加密的代码 4.直接上代码 import java.u ...

  6. python 向qq邮箱发邮件

    #coding:utf-8 ''' Created on 2017-1-12 @author: xiaochun ''' import smtplib from email.mime.text imp ...

  7. python3 通过qq邮箱定时发送邮件

    下面的代码为了每天定时发送监控邮件,监控什么呢?监控当天redis队列中是否有没有消费的数据,和当天mysql中新增的数据量 # -*- coding:utf-8 -*- from common.re ...

  8. 使用Python登陆QQ邮箱发送垃圾邮件 简单实现

    参考:Python爱好者 知乎文章 需要做的是: 1.邮箱开启SMTP功能 2.获取授权码 上述两步百度都有. 源码: #!/usr/bin/env python from email.mime.te ...

  9. Selenium+webdriver自动化登陆QQ邮箱并发送邮件

    1.关于selenium  Selenium的主要功能包括:(1)测试与浏览器的兼容性:测试应用程序能否兼容工作在不同浏览器和操作系统之上.(2)测试系统功能:录制用例自动生成测试脚本,用于回归功能测 ...

  10. python发送QQ邮箱方法

    import smtplib from email.mime.text import MIMEText mail_user = "user1@qq.com" mail_pwd = ...

随机推荐

  1. Sql Server函数全解

    --系统函数 create database sample_db; use sample_db; create table student ( i_sid int primary key identi ...

  2. Spring Framework学习总结

    一.Spring 概述 Spring 有两个核心部分: IoC 和 AOP. Spring 是一种基于 Bean 的编程技术,它深刻地改变着 Java 开发世界.Spring 使用简单.基本的 Jav ...

  3. 初学,Markdown的使用

    Markdown学习 一级标题:"#"+空格+"标题" 二级标题 二级标题:"##"+空格+"标题" 三级标题 三级标题 ...

  4. revit添加扩展组件

    revit 添加组件方法: 查找本地这个地址: C:\Users\用户名\AppData\Roaming\Autodesk\Revit\Addins\2018 下载网上找到的插件,一般从github查 ...

  5. 探究Tomcat

    一.什么是Tomcat? 用来装载javaWeb程序,可以称它为Web容器.是一个运行java的网络服务器,底层是Sochet的一个程序,他也是JSP和Servlet的一个容器. 二.什么要用Tomc ...

  6. C#重点语法——反射

    ------------恢复内容开始------------ 一.含义 反射是指访问,检测或修改程序代码本身状态或行为的一种技术. 举例: 官方代码继承了IReflect ------------恢复 ...

  7. 文件上传靶场 upload-labs Pass 5-10

    Pass-5 .user.ini文件 根据我的观察,最新版的upload-labs第五关和旧版的不一样,这一关可以使用和Pass-10一样的方法通过,但是,其他所有的关卡都禁止了.ini文件的上传,就 ...

  8. Axios的相关应用

    Axios 的案例应用 要求利用axios实现之前利用AJAX实现的验证用户是否登录的案例 鉴于这两种语法的相似性,只需要在AJAX里面的注册界面里面的script标签里面包含的代码修改为如下代码即可 ...

  9. better-scroll横向滚动、纵向滚动

    <div ref="tab" class="tab"> <ul ref="tabWrapper" class=" ...

  10. ABC291题解(D-G)

    ABC291 D - Flip Cards Solution: 考虑DP,定义状态\(F_{i,0}\)为第\(i\)张卡片正面朝上的方案数,\(F_{i,1}\)为第\(i\)张卡片背面朝上的方案数 ...