python实现自动发邮件
Python有两个内置库:smtplib和email,可以实现邮件功能,无需下载,直接import导入。
- smtplib库负责发送邮件
- Email库负责构造邮件格式和内容
邮件发送需要遵守SMTP协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
实验代码
1 #Part 1:导入相关的库和方法
2 #导入两个内置库
3 import smtplib
4 import email
5 #负责构造文本
6 from email.mime.text import MIMEText
7 #负责构造图片
8 from email.mime.image import MIMEImage
9 #负责将多个对象集合起来
10 from email.mime.multipart import MIMEMultipart
11 from email.header import Header
12
13 #Part 2:设置邮箱域名,发件人邮箱,邮箱授权码,收件人邮箱
14 #SMTP服务器,这里使用163邮箱
15 mail_host="smtp.163.com"
16 #发件人邮箱
17 mail_sender="**********@163.com"
18 #邮箱授权码
19 mail_license="VJCQPLGSMHJQFWEL"
20 mail_receivers=["**********@gmail.com"]
21
22 #Part 3:构建MIMEMultipart对象代表邮件本身,可以往里面添加文本、图片、附件等
23 mm=MIMEMultipart('related')
24
25 #Part 4:设置邮件头部内容
26 #邮件主题
27 subject_content="python邮件测试"
28 #设置发送者,严格遵守格式
29 mm["From"]="sender_name<********@163.com>"
30 #设置接收者,严格遵守格式
31 mm["To"]="receiver_name<*********@gmail.com>"
32 #设置邮件主题
33 mm["Subject"]=Header(subject_content,'utf-8')
34
35 #Part 5:添加正文文本
36 # 邮件正文内容
37 body_content = "你好,这是一个测试邮件!"
38 # 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
39 message_text = MIMEText(body_content,"plain","utf-8")
40 # 向MIMEMultipart对象中添加文本对象
41 mm.attach(message_text)
42
43 #Part 6:添加图片
44 # 二进制读取图片
45 image_data = open('a.jpg','rb')
46 # 设置读取获取的二进制数据
47 message_image = MIMEImage(image_data.read())
48 # 关闭刚才打开的文件
49 image_data.close()
50 # 添加图片文件到邮件信息当中去
51 mm.attach(message_image)
52
53 #Part 7:添加附件
54 # 构造附件
55 atta = MIMEText(open('sample.xlsx', 'rb').read(), 'base64', 'utf-8')
56 # 设置附件信息
57 atta["Content-Disposition"] = 'attachment; filename="sample.xlsx"'
58 # 添加附件到邮件信息当中去
59 mm.attach(atta)
60
61 #Part 8:发送邮件
62 # 创建SMTP对象
63 stp = smtplib.SMTP()
64 # 设置发件人邮箱的域名和端口,端口地址为25
65 stp.connect(mail_host, 25)
66 # set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
67 stp.set_debuglevel(1)
68 # 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
69 stp.login(mail_sender,mail_license)
70 # 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
71 stp.sendmail(mail_sender, mail_receivers, mm.as_string())
72 print("邮件发送成功")
73 # 关闭SMTP对象
74 stp.quit()
遇到的问题:
smtp出现(500, b'Error: bad syntax')
解决办法:
https://blog.csdn.net/weixin_38428827/article/details/104223207
运行成功:

python实现自动发邮件的更多相关文章
- python连接数据库自动发邮件
python连接数据库实现自动发邮件 1.运行环境 redhat6 + python3.6 + crontab + Oracle客户端 2.用到的模块 3.操作步骤 (1)安装python3.6参考 ...
- python自动发邮件库yagmail
#### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...
- python自动发邮件库yagmail(转)
一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email ...
- 【python】python 自动发邮件
一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第 ...
- Selenium 2自动化测试实战37(自动发邮件功能)
自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...
- PHP自动发邮件
自动发邮件 使用了这个类http://bbs.php100.com/read-htm-tid-121431.html 因他用的php版本较老,用到了函数ereg_replace() 和 ereg() ...
- java windows自动化-mail自动发邮件
本文旨在让测试人员了解如何发邮件 发邮件的话,最简单的事是直接手动发邮件,但是在自动化测试中,应做到让机器或者代码来自动发送邮件,笔者大概了解以下几种方法,总有一款口味适合你:1java代码来做下面即 ...
- jira6.3.6创建问题不自动发邮件通知的问题
装完jira6.3.6后,设置好邮件服务器,测试没有问题.但是创建问题不自动发邮件提示用户.折腾了大半天,请教了一位大神,终于搞定.步骤是: agile->系统->用户界面->用户缺 ...
- redmine创建新闻,自动发邮件给项目组所有成员
redmine创建新闻,自动发邮件给项目组所有成员: 1.添加用户至公共项目内 2.配置系统邮件推送配置 3.检查用户接受推送配置 3.使用管理员账户发布新闻(不能自己发送自己) 4.查看邮件接受邮件
随机推荐
- 【Android Studio】安卓开发初体验2——Activity
Activity是什么 Activity用于提供可视化用户界面的组件,可以与用户进行交互来完成某项任务,一个应用程序中可以包含零个或多个活动 Activity的创建 首先将左侧的Active Tool ...
- MarkdownPad 2中编辑
一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 #######七级标题 ########八级标题 #!/bin/bash declare -i evenSum=0 declare -i i ...
- Java_Math类和Random类
Math类 java.lang.Math提供了一系列静态方法用于科学计算, 其方法的参数和返回值类型一般都为double型, 如果需要更加强大的数学运算能力计算高等数学中的相关内容, 可使用apach ...
- c# 创建delphi的代码
需求: 有一个专业表,没有插入数据,读取的excel,复制为txt文件 每行读取 并且 将汉字的一转换为数字1 private void barButtonItem4_ItemClick(object ...
- 线程安全的SimpleDateFormat
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- egit版本对应关系。
egit版本对应关系. http://wiki.eclipse.org/EGit/FAQ#What_versions_of_Eclipse_does_EGit_target.3F
- create-react-app添加对TypeScript支持
背景 最近一直在重构react项目,由于项目历史原因,将之前parcel打包工具换成了webpack,并选择了使用create-react-app作为项目开发脚手架. 接着就是把项目中flow类型检查 ...
- git命令学习之clone指定分支代码
今天要拉取一个项目,但是是一个指定分支,本来我以为直接git clone就行,但是发现好像不能,报错: Cloning into 'lecture'...fatal: unable to update ...
- error while loading shared libraries解決方法
在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了. error while loading ...
- Idea eclipse 快捷键Debug调试
运行下一行 F6 进入下一次计算 F5 运行到下一个断电 F7 恢复运行 F8