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 相关文章推荐
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
python async with和async for的使用
Jun 20 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
Python变量访问权限控制详解
Jun 29 Python
Python Django的安装配置教程图文详解
Jul 17 Python
Python模块future用法原理详解
Jan 20 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
python字符串的一些常见实用操作
Apr 06 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
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
selenium3+python3环境搭建教程图解
2018/12/07 Python
用django设置session过期时间的方法解析
2019/08/05 Python
Python实现不规则图形填充的思路
2020/02/02 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
迟到检讨书300字
2014/02/14 职场文书
入党自我鉴定
2014/03/25 职场文书