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天气预报采集器实现代码(网页爬虫)
Oct 07 Python
python迭代器与生成器详解
Mar 10 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
目前最全的python的就业方向
Jun 05 Python
Python 2.7中文显示与处理方法
Jul 16 Python
python实现弹窗祝福效果
Apr 07 Python
Python读取yaml文件的详细教程
Jul 21 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
教你漂亮打印Pandas DataFrames和Series
May 29 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
分享几种python 变量合并方法
Mar 20 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
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python操作日期和时间的方法
2014/03/11 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
解读python如何实现决策树算法
2018/10/11 Python
python Tkinter版学生管理系统
2019/02/20 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python实现倒计时小工具
2019/07/29 Python
Django权限设置及验证方式
2020/05/13 Python
基于python实现复制文件并重命名
2020/09/16 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
英语专业毕业生自荐信范文
2013/12/31 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
运动会邀请函范文
2014/01/31 职场文书
党课培训主持词
2014/04/01 职场文书
公司承诺书范文
2014/05/19 职场文书
李敖北大演讲稿
2014/05/24 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
迎新生标语大全
2014/10/06 职场文书
银行求职信模板
2015/03/20 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
SQL Server中搜索特定的对象
2022/05/25 SQL Server