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中for循环是如何工作的
Jun 30 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
520使用Python实现“我爱你”表白
May 20 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 Python
python 如何引入协程和原理分析
Nov 30 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 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中常用编辑器推荐
2007/01/02 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
php微信支付接口开发程序
2016/08/02 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
Add a Formatted Table to a Word Document
2007/06/15 Javascript
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
保护环境倡议书500字
2014/05/19 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
2014国庆节标语口号
2014/09/19 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
质检员岗位职责
2015/02/03 职场文书
python装饰器代码解析
2022/03/23 Python
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang