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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python yield 小结和实例
Apr 25 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
简单谈谈python中的lambda表达式
Jan 19 Python
python实现学员管理系统
Feb 26 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
使用python绘制温度变化雷达图
Oct 18 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
pycharm永久激活超详细教程
Oct 29 Python
python中的yield from语法快速学习
Nov 06 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
动态加载js的几种方法
2006/10/23 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
python实现一个简单的ping工具方法
2019/01/31 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
python内存管理机制原理详解
2019/08/12 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
工业自动化毕业生自荐信范文
2014/01/04 职场文书
迟到检讨书900字
2014/01/14 职场文书
房地产项目策划书
2014/02/05 职场文书
小班重阳节活动方案
2014/02/08 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
食品流通安全承诺书
2014/05/22 职场文书
新员工入职感想
2015/08/07 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python