利用Python发送邮件或发带附件的邮件


Posted in Python onNovember 12, 2020

本文使用的是163邮件进行测试。

注:163邮箱现在需要使用 客户端授权码 进行测试,不再支持邮箱密码进行测试。

 1、使用Python发Text 邮件

import smtplib
# 发送字符串的邮件
from email.mime.text import MIMEText

# 设置服务器所需信息
fromEmailAddr = '发件人邮箱地址' # 邮件发送方邮箱地址
password = 'email password' # 密码(部分邮箱为授权码)
toEmailAddrs = ['接收方地址'] # 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发

# 设置email信息
# ---------------------------发送字符串的邮件-----------------------------
# 邮件内容设置
message = MIMEText('hello,test Python send Email.', 'plain', 'utf-8')
# 邮件主题
message['Subject'] = 'python test email'
# 发送方信息
message['From'] = fromEmailAddr
# 接受方信息
message['To'] = toEmailAddrs[0]
# ---------------------------------------------------------------------


# 登录并发送邮件
try:
 server = smtplib.SMTP('smtp.163.com') # 163邮箱服务器地址,端口默认为25
 server.login(fromEmailAddr, password)
 server.sendmail(fromEmailAddr, toEmailAddrs, message.as_string())
 print('success')
 server.quit()
except smtplib.SMTPException as e:
 print("error:", e)

2、使用Python发送带附件的邮件

import smtplib
# 发送字符串的邮件
from email.mime.text import MIMEText
# 需要 MIMEMultipart 类
from email.mime.multipart import MIMEMultipart

# 设置服务器所需信息
fromEmailAddr = '发件人邮箱地址' # 邮件发送方邮箱地址
password = 'email password' # 密码(部分邮箱为授权码)
toEmailAddrs = ['收件人地址'] # 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发

# 设置email信息
# ---------------------------发送带附件邮件-----------------------------
# 邮件内容设置
message = MIMEMultipart()
# 邮件主题
message['Subject'] = 'python test email'
# 发送方信息
message['From'] = fromEmailAddr
# 接受方信息
message['To'] = toEmailAddrs[0]
# 邮件正文内容
message.attach(MIMEText('hello,test Python send Email', 'plain', 'utf-8'))

# 构造附件
att1 = MIMEText(open('text.txt', 'rb').read(), 'base64', 'utf-8')
att1['Content-type'] = 'application/octet-stream'
att1['Content-Disposition'] = 'attachment; filename="test.zip"'
message.attach(att1)
# ---------------------------------------------------------------------

# 登录并发送邮件
try:
 server = smtplib.SMTP('smtp.163.com') # 163邮箱服务器地址,端口默认为25
 server.login(fromEmailAddr, password)
 server.sendmail(fromEmailAddr, toEmailAddrs, message.as_string())
 print('success')
 server.quit()
except smtplib.SMTPException as e:
 print("error:", e)

以上就是利用Python发送邮件或发带附件的邮件的详细内容,更多关于python 发送邮件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
Python统计分析模块statistics用法示例
Sep 06 Python
python实现画循环圆
Nov 23 Python
pandas中ix的使用详细讲解
Mar 09 Python
python ETL工具 pyetl
Jun 07 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
Python页面加载的等待方式总结
Feb 28 Python
Python入门学习之类的相关知识总结
May 25 Python
Python如何使用ConfigParser读取配置文件
Nov 12 #Python
Python使用windows设置定时执行脚本
Nov 12 #Python
Django restful framework生成API文档过程详解
Nov 12 #Python
Python通过Schema实现数据验证方式
Nov 12 #Python
Django用户认证系统如何实现自定义
Nov 12 #Python
Django自带用户认证系统使用方法解析
Nov 12 #Python
Django多数据库联用实现方法解析
Nov 12 #Python
You might like
php 调试利器debug_print_backtrace()
2012/07/23 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
phalcon框架使用指南
2016/02/23 PHP
php查询操作实现投票功能
2016/05/09 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
js树形控件脚本代码
2008/07/24 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
python 数据加密代码
2008/12/24 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python读取word文本操作详解
2018/01/22 Python
PyQt5实现拖放功能
2018/04/25 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
python 实现矩阵填充0的例子
2019/11/29 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
付款承诺函范文
2015/01/21 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书