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爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
python读取一个目录下所有txt里面的内容方法
Jun 23 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Django实现auth模块下的登录注册与注销功能
Oct 10 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
用python-webdriver实现自动填表的示例代码
Jan 13 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/07/17 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
实习期自我鉴定
2013/10/11 职场文书
客服实习的个人自我鉴定
2013/10/20 职场文书
简历的自我评价范文
2014/02/04 职场文书
市场部经理岗位职责
2014/04/10 职场文书
项目合作协议书
2014/04/16 职场文书
驻村工作先进事迹
2014/08/14 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
初婚未育证明样本
2014/10/24 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
详解Vue3使用axios的配置教程
2022/04/29 Vue.js