今天我带大家实现下简单的发邮件功能。我们要使用到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. Python笔记(2)——列表一:列表简介(Python编程:从入门到实践)

    一.列表是什么 列表:由一系列按特定顺序排列的元素组成(列表是有序集合). 表示:用方括号[]来表示,并用逗号来分隔其中的元素. 访问:访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括 ...

  2. alia linux

    alias lrt='ls -lrt'

  3. day48-Mysql安装文件结构及SQL常用语句

    1.安装文件结构 bin--mysql.exe 客户端运行程序: mysqld.exe 服务端运行程序:  data--数据库.数据表等文件 注:修改配置文件后需要重启服务端 2.常用SQL语句 1) ...

  4. 在winodws server r2上安装AD域

    一.创建第一个域 服务器管理-管理--添加角色和功能 其他都是默认值,下一步 二.重启后,已域账号登录 三.检查AD域有没有安装成功 1.查看计算机名 更改计算机名 2.检查是否含有以下,AD管理中心 ...

  5. 转载C#加密方法

    方法一:    //须添加对System.Web的引用     using System.Web.Security;          ...          /// <summary> ...

  6. 关与python面向对象的认识

    面向对象编程 类:从一堆对象中以抽象的方式把相同的特征归类得到. 抽象类 类 实列 子类抽象为父类,子类继承父类特征. 类实例化为实例,实例抽象为类. class Human(object): cen ...

  7. mybatis_19

    id username birthday sex address 1 王五 2 10 张三 2014-07-10 1 北京市 16 张小明 1 河南郑州 22 陈小明 1 河南郑州 24 张三丰 1 ...

  8. 【BUUCTF]ACTF2020 新生赛Exec1write up

    根据题目分析,俺们要用ping命令! 打开靶机,输入127.0.0.1尝试提交,直接出现无过滤: 尝试管道符执行命令,常见管道符: 1.|(就是按位或),直接执行|后面的语句 2.||(就是逻辑或), ...

  9. windos 环境下载安装seata

    参考: https://blog.csdn.net/lianghecai52171314/article/details/127330916

  10. 声网 X 远程超声:实时音视频解决基层“看病难” 推动医疗资源均衡化

    实时互联网像触角一样,通过情景的共享延伸开来,链接着我们彼此的线下.线上生活,形成一张不可分割的网络.随着社交直播.在线教育.视频会议成为大众生活不可或缺的一部分的同时,智能手表.智能作业灯.视频双录 ...