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随机生成彩票号码的方法
Mar 05 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
老生常谈Python序列化和反序列化
Jun 28 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
Python将string转换到float的实例方法
Jul 29 Python
python自定义时钟类、定时任务类
Feb 22 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
python利用platform模块获取系统信息
Oct 09 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来检测proxy
2006/10/09 PHP
基于mysql的论坛(5)
2006/10/09 PHP
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
Python实现备份文件实例
2014/09/16 Python
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
Django实现学员管理系统
2019/02/26 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
selenium自动化测试入门实战
2020/12/21 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
党章学习思想汇报
2014/01/14 职场文书
进步之星获奖感言
2014/02/22 职场文书
政府法律服务方案
2014/06/14 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
高二数学教学反思
2016/02/18 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸