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 thread 并发且顺序运行示例
Apr 09 Python
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python赋值语句后逗号的作用分析
Jun 08 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
python中如何使用分步式进程计算详解
Mar 22 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
简单了解Python多态与属性运行原理
Jun 15 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 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
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
python版简单工厂模式
2017/10/16 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
目前最全的python的就业方向
2018/06/05 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
手机业务员岗位职责
2013/12/13 职场文书
销售员岗位职责范本
2014/02/03 职场文书
项目负责人任命书
2014/06/04 职场文书
课外科技活动总结
2014/08/27 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
小学生家长意见
2015/06/03 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技
bose降噪耳机音能消除人声吗
2022/04/19 数码科技