python使用smtplib模块发送邮件


Posted in Python onDecember 17, 2020

使用smtplib模块发送邮件,供大家参考,具体内容如下

1)使用smtplib模块发送简单邮件

步骤:

1.连接SMTP服务器,并使用用户名、密码登陆服务器
2.创建EmailMessage对象,该对象代表了邮件本身
3.调用sendmail()方法发送邮件

示例:

  • 我用自己的QQ邮箱(英文地址)给自己(原始地址)发一封邮件(QQ邮箱需要授权码(详见))
  • smtplib.SMTP() 代表的普通SMTP连接(默认端口21)
  • smtplib.SMTP_SSL() 代表基于SSL的SMTP连接(默认端口456,安全)
import smtplib
import email.message

fromaddr = 'wk_helloworld@qq.com' # 账号
password = '****************'  # QQ授权码

conn = smtplib.SMTP_SSL('smtp.qq.com', 465) # 创建SMTP连接 
conn.login(fromaddr, password)    # 登录邮件服务器
msg = email.message.EmailMessage()   # 创建邮件对象
msg.set_content('您好,Python邮件')   # 设置邮件内容(普通邮件)
conn.sendmail(fromaddr, ['929667257@qq.com'], msg.as_string())  # 发送邮件

conn.quit() # 退出连接

python使用smtplib模块发送邮件

2)发送内容完整的邮件

  • 为邮件设置标题、发件人名字、收件人名(设置 EmailMessage 对象对应的属性)
  • EmailMessage的set_content() 方法的第二个参数设置为 html 可将邮件内容改为 HTML 格式
import smtplib
import email.message

fromaddr = 'wk_helloworld@qq.com'
password = '****************'
 
conn = smtplib.SMTP_SSL('smtp.qq.com', 465)
conn.login(fromaddr, password) 
msg = email.message.EmailMessage()
msg.set_content('<h2>HTML邮件<h2>' + '<div style="border:1px:solid red">HTML邮件内容</div>', 'html', 'UTF-8')
msg['subject'] = 'HTML邮件'
msg['from'] = '痴迷<%s>' % fromaddr
msg['to'] = '淡然<%s>' % '929667257@qq.com'
conn.sendmail(fromaddr, ['929667257@qq.com'], msg.as_string())

conn.quit()

python使用smtplib模块发送邮件

3)发送图文并茂的邮件

在邮件中插入图片,需要先调用 EmailMessage 的 add_attachment() 方法来添加附件,该方法参数:

  • maintype:指定附件的主要类型
  • subtype:指定附件的子类型
  • filename:指定该附件的文件名
  • cid=img:指定该附件的资源 ID

通过<img…/>元素来插入附件中的图片(引用附件的cid属性)

import smtplib
import email.message
import email.utils

fromaddr = 'wk_helloworld@qq.com'
password = '****************'
toaddr = '929667257@qq.com'
 
conn = smtplib.SMTP_SSL('smtp.qq.com', 465)
conn.login(fromaddr, password) 
msg = email.message.EmailMessage()
first_id = email.utils.make_msgid()
msg.set_content('<h2>HTML邮件<h2>' 
    + '<div style="border:1px:solid red">html邮件内容</div>' 
    + '<img src="cid:' + first_id[1:-1] + '">', 'html', 'UTF-8')
msg['subject'] = 'HTML邮件'
msg['from'] = 'wk<%s>' % fromaddr
msg['to'] = 'k<%s>' % toaddr

# 添加附件
with open('图1.jpg', 'rb') as f:
 # 附件指定cid后,邮件正文可通过该cid来引用该图片
 msg.add_attachment(f.read(), maintype='image', subtype='jepg', filename='test1.jpg', cid=first_id)

with open('图2.jpg', 'rb') as f:
 msg.add_attachment(f.read(), maintype='image', subtype='jepg', filename='test2.jpg')
# with open('图3.gif', 'rb') as f:
#  msg.add_attachement(f.read(), maintype='image', subtype='gif', filename='test.jpg')

conn.sendmail(fromaddr, [toaddr], msg.as_string())

conn.quit()

python使用smtplib模块发送邮件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库inspect的具体使用方法
Dec 06 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python dlib人脸识别代码实例
Apr 04 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python Tensor和Array对比分析
Jan 08 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
python如何将图片转换素描画
Sep 08 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
python四种出行路线规划的实现
Jun 23 Python
python3 字符串str和bytes相互转换
Mar 23 Python
python实现计算器简易版
Dec 17 #Python
利用Python实现自动扫雷小脚本
Dec 17 #Python
用python读取xlsx文件
Dec 17 #Python
Python实现自动整理文件的脚本
Dec 17 #Python
Python用access判断文件是否被占用的实例方法
Dec 17 #Python
Python实例教程之检索输出月份日历表
Dec 16 #Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 #Python
You might like
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
php字符串分割函数用法实例
2015/03/17 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
python连接池实现示例程序
2013/11/26 Python
Python 的 Socket 编程
2015/03/24 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
Python编写万花尺图案实例
2021/01/03 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
周年庆促销方案
2014/03/15 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
高中教师个人工作总结
2015/02/10 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
Python实现生活常识解答机器人
2021/06/28 Python