python中执行smtplib失败的处理方法


Posted in Python onJuly 01, 2020

经测试可用的发送邮件代码:

import smtplib
from email.mime.text import MIMEText
  
# 第三方 SMTP 服务
mail_host = "smtp.163.com" # SMTP服务器
mail_user = "username" # 用户名
mail_pass = "passwd" # 密码(这里的密码不是登录邮箱密码,而是授权码)
  
sender = 'sender_mail@163.com' # 发件人邮箱
receivers = ['receive_mail@qq.com'] # 接收人邮箱 
  
content = 'Python Send Mail !'
title = 'Python SMTP Mail Test' # 邮件主题
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title
  
try:
  smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
  smtpObj.login(mail_user, mail_pass) # 登录验证
  smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
  print("mail has been send successfully.")
except smtplib.SMTPException as e:
  print(e)

问题解决与注意点:

1.报错:Error: A secure connection is requiered(such as ssl)

解决:因为邮箱SSL验证的问题,因此把smtplib.SMTP()改成smtplib.SMTP_SSL(),端口号为465。

2.报错:535, b'Error: authentication failed'

解决:可能是由于用户名不正确,因此代码中的用户名应该填写为邮箱地址@前面部分 ,或是在邮箱设置的帐户昵称。

3.SMTP服务器可根据发送的邮箱做相应的选择,如代码中使用163邮箱则设为mail_host = "smtp.163.com",

可以改成"smtp.126.com"、"smtp.qq.com"等等。

4.代码中的密码mail_pass为授权码,并非邮箱密码,授权码用于登录第三方邮件客户端的专用密码,

QQ邮箱可通过设置→帐户→生成授权码;网易邮箱126/163可通过设置→客户端授权密码。

知识点扩展:

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

smtp协议的基本命令包括:

  • HELO 向服务器标识用户身份
  • MAIL 初始化邮件传输 mail from:
  • RCPT 标识单个的邮件接收人;常在MAIL命令后面,可有多个rcpt to:
  • DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束
  • VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
  • EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
  • HELP 查询服务器支持什么命令
  • NOOP 无操作,服务器应响应OK
  • QUIT 结束会话
  • RSET 重置会话,当前传输被取消
  • MAIL FROM 指定发送者地址
  • RCPT TO 指明的接收者地址

到此这篇关于python中执行smtplib失败的处理方法的文章就介绍到这了,更多相关python中执行smtplib失败如何处理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python科学计算环境推荐——Anaconda
Jun 30 Python
Python中的对象,方法,类,实例,函数用法分析
Jan 15 Python
详解appium+python 启动一个app步骤
Dec 20 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
python实现维吉尼亚加密法
Mar 20 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 Python
python中的3种定义类方法
Nov 27 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 #Python
完美解决keras 读取多个hdf5文件进行训练的问题
Jul 01 #Python
学python需要去培训机构吗
Jul 01 #Python
详解python logging日志传输
Jul 01 #Python
python怎么调用自己的函数
Jul 01 #Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 #Python
如何解决安装python3.6.1失败
Jul 01 #Python
You might like
来自PHP.NET的入门教程
2006/10/09 PHP
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php 面向对象的一个例子
2011/04/12 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
php5与php7的区别点总结
2019/10/11 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
Python调用C++程序的方法详解
2017/01/24 Python
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python连接mongodb密码认证实例
2018/10/16 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
Linux如何压缩可执行文件
2014/03/27 面试题
小型女装店的创业计划书
2014/01/09 职场文书
表彰先进集体通报
2014/01/12 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server