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发布模块的步骤分享
Feb 21 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
对于Python中RawString的理解介绍
Jul 07 Python
Python 多线程Threading初学教程
Aug 22 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
pandas按条件筛选数据的实现
Feb 20 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 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
实用函数9
2007/11/08 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
微信跳一跳辅助python代码实现
2018/01/05 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python实现计算器功能
2019/10/31 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
python简单实现9宫格图片实例
2020/09/03 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
优秀团支部申报材料
2014/12/26 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
Python3 类型标注支持操作
2021/06/02 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android
海弦WR-800F
2022/04/05 无线电