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多线程扫描端口示例
Jan 16 Python
Python字符串拼接六种方法介绍
Dec 18 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python的一些加密方法及python 加密模块
Jul 11 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
python爬虫实现获取下一页代码
Mar 13 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
Python读取文件夹下的所有文件实例代码
Apr 02 Python
PyTorch的Debug指南
May 07 Python
Python使用scapy模块发包收包
May 07 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
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Python pymongo模块常用操作分析
2018/09/01 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
python三引号输出方法
2019/02/27 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
详解Django CAS 解决方案
2019/10/30 Python
python绘制雪景图
2019/12/16 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
幼师自我鉴定范文
2013/10/01 职场文书
公司管理建议书范文
2014/03/12 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书