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 相关文章推荐
python3 实现的人人影视网站自动签到
Jun 19 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
Python3计算三角形的面积代码
Dec 18 Python
python中时间模块的基本使用教程
May 14 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
python反转列表的三种方式解析
Nov 08 Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 #Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 #Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 #Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 #Python
为什么称python为胶水语言
Jun 16 #Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 #Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 #Python
You might like
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
PHP教程 变量定义
2009/10/23 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
VueJS全面解析
2016/11/10 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
企业承诺书格式
2014/05/21 职场文书
节水标语大全
2014/06/11 职场文书
篮球社团活动总结
2014/06/27 职场文书
合作协议书范文
2014/08/20 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python