Python实现SMTP邮件发送


Posted in Python onJune 16, 2020

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

SMTP 对象语法如下:

import smtplib

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明:

  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
  • local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

参数说明:

  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息

这里要注意一下第三个参数,msg 是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意 msg 的格式。这个格式就是 smtp 协议中定义的格式。

实例

以下执行实例需要你本机已安装了支持 SMTP 的服务,如:sendmail。

import smtplib

from email.mime.text import MIMEText
from email.header import Header

sender = '973708513@qq.com' # 发送方
receiver = 'sutaoyu001@163.com' # 接收方

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('QQ像163发送测试文件....','plain','utf-8')
message['From'] = Header('Python教程...') # 发送者
message['To'] = Header('测试','utf-8')   # 接受者

subject = 'Python SMTP测试'
message['subject'] = Header('utf-8')

try:
  smtpObj = smtplib.SMTP('localhost')
  smtpObj.sendmail(sender, receiver, message.as_string())
  print("邮件发送成功")
except smtplib.SMTPException:
  print("Error: 无法发送邮件")

# 邮件发送成功

如果我们本机没有 sendmail 访问,也可以使用其他邮件服务商的 SMTP 访问(QQ、网易、Google等)。

import smtplib

from email.mime.text import MIMEText
from email.header import Header

#第三方SMTP服务
host="smtp.qq.com" #设置服务器
user="973708513"  #用户名
password="xxxxxx"  #口令

sender = '973708513@qq.com' # 发送方
receiver = 'sutaoyu001@163.com' # 接收方

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('QQ像163发送测试文件....','plain','utf-8')
message['From'] = Header('Python教程...') # 发送者
message['To'] = Header('测试','utf-8')   # 接受者

subject = 'Python SMTP测试'
message['subject'] = Header('utf-8')

try:
  smtpObj = smtplib.SMTP()
  smtpObj.connect(host, 465)  # 25 为 SMTP 端口号
  smtpObj.login(user,password)
  smtpObj.sendmail(sender, receiver, message.as_string())
  print("邮件发送成功")
except smtplib.SMTPException:
  print("Error: 无法发送邮件")

# 邮件发送成功

以上就是Python实现SMTP邮件发送的详细内容,更多关于Python SMTP的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
Python实现递归遍历文件夹并删除文件
Apr 18 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
python爬虫获取新浪新闻教学
Dec 23 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
python pymysql库的常用操作
Oct 16 Python
如何在向量化NumPy数组上进行移动窗口
May 18 Python
python热力图实现的完整实例
Jun 25 Python
python语言中有算法吗
Jun 16 #Python
python爬虫可以爬什么
Jun 16 #Python
通过cmd进入python的步骤
Jun 16 #Python
解决Keras 自定义层时遇到版本的问题
Jun 16 #Python
Keras实现支持masking的Flatten层代码
Jun 16 #Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 #Python
浅谈keras 的抽象后端(from keras import backend as K)
Jun 16 #Python
You might like
php中截取中文字符串的代码小结
2011/07/17 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
高三自我鉴定范文
2013/10/19 职场文书
高级护理专业大学生求职信
2013/10/24 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
工作失职检讨书范文
2014/01/16 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
绩效考核实施方案
2014/03/18 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
学校标语大全
2014/06/19 职场文书
大学教师个人总结
2015/02/10 职场文书
收银员岗位职责范本
2015/04/07 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
60句有关成长的名言
2019/09/04 职场文书
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA