一、思路

  1、若是QQ邮箱需要在设置-账户里面开启服务
  2、在python中smtplib库是专门用来处理邮件
  3、自动化邮件发送实操
    a、要处理的邮件主题,寄件人,收件人,邮件正文,附件,
    b、邮件正文,:文本信息,HTML信息,图片内容
    c、附件内容格式:txt,jpg,pdf,excel,doc
  4、发送邮件附件流程
    a、读取附件
    b、添加附件
     c、与内容一起发送
二、代码实现
 import smtplib
from email import encoders
from email.mime.text import MIMEText # 处理邮件内容的库 email.mime # 处理邮件附件 MIMEMUltipart,Header,MIMEBase
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.base import MIMEBase # 邮箱属性配置
mailserver = 'smtp.qq.com' # 邮箱服务端url,163邮箱就写smtp..com,非QQ邮箱一般使用SMTP,不需要有SSL
userName_SendMail = '45614456@qq.com' # 发件人
userName_AuthCode = 'tnppuxjie' # 邮箱发件授权码,qq邮箱需要授权码
received_mail = ['468465456@qq.com', '4546546546@qq.com'] # 定义邮件的接收者,可以定义多个 # 发送一封简单的邮件
content = '这是一个文本信息内容' # 定义发送内容
email = MIMEText(content, 'plain', 'utf-8') # 纯文本形式的邮件内容定义,通过MIMEText进行操作
email['Subject'] = '这里写邮件主题' # 定义邮件主题
email['From'] = userName_SendMail # 定义邮件发件人
email['To'] = ','.join(received_mail) # 定义接收人,接收人为多个用,分割 # 发送一封HTML邮件
content = '''
<p>这是一封HTML文本的邮件</p>
<p><a href='http://www.baidu.com'>点我啊</a></p>
'''
email = MIMEText(content, 'html', 'utf-8')
email['Subject'] = '这里写邮件主题' # 定义邮件主题
email['From'] = userName_SendMail # 定义邮件发件人
email['To'] = ','.join(received_mail) # 定义接收人,接收人为多个用,分割 # 发送带有附件的邮件
#附件配置邮箱 email = MIMEMultipart() # 只更换这项就OK
email['Subject'] = '这里写邮件主题' # 定义邮件主题
email['From'] = userName_SendMail # 定义邮件发件人
email['To'] = ','.join(received_mail) # 定义接收人,接收人为多个用,分割 # 非图片附件
att = MIMEBase('application','octet-stream')
att.set_payload(open('文件名','rb').read())
att.add_header('Contenet-Disposition','attachment',filename=Header('文件名.txt','gbk').encode())
encoders.encode_base64(att)
email.attach(att) # 图片附件
att1 = MIMEBase('application','octet-stream')
att1.set_payload(open('图片名.jpg','rb').read())
att1.add_header('Contenet-Disposition','attachment',filename=Header('图片名.jpg','gbk').encode())
encoders.encode_base64(att1)
email.attach(att1) # 发送邮件
smtp = smtplib.SMTP_SSL(mailserver, port=) # 连接服务
smtp.login(userName_SendMail, userName_AuthCode) # 登录,需要传入用户名和授权码
smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string()) # 转换成str类型 # 关闭邮件
smtp.quit()
 

最新文章

  1. tmux常用快捷键
  2. python 解析json loads dumps
  3. 【126】win8的一些问题
  4. 【CSS3】---结构性伪类选择器—nth-child(n)+nth-last-child(n)
  5. 如何快速查看linux的发行版信息
  6. 依赖注入及AOP简述(七)——FQCN请求模式
  7. Python 3.6.3 利用 Dlib 19.7 和 opencv 实现人脸68点定位 进行人脸识别
  8. JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能
  9. wordpress如何利用插件添加优酷土豆等视频到自己的博客上
  10. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)
  11. 1、redis 基础
  12. VRF在区块链中的应用
  13. 自定义textview
  14. virtual box 下安装centos 7
  15. linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO(转载)
  16. CSS快速入门-属性和伪类
  17. bzoj1641 / P2888 [USACO07NOV]牛栏Cow Hurdles
  18. 重庆市队选拔 CQOI2015 解题报告
  19. mysqldump导出数据不带时区信息的问题
  20. Net.Core导入EXCel文件里的数据

热门文章

  1. Word页眉实现首页不同、奇偶页不同 、更改页眉横线、页眉文字对齐 -- 视频教程(8)
  2. 一个 frameset 框架
  3. Python之路【第二十一篇】:JS基础
  4. ZYNQ笔记(0):C语言基础知识复习
  5. Html 对象的常用事件列举
  6. K8s-yaml的使用及命令
  7. Hive 系列(三)—— Hive CLI 和 Beeline 命令行的基本使用
  8. Spring Boot 优雅的配置拦截器方式
  9. mongodb常规操作语句
  10. 学习网络BGP必备基础知识