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 相关文章推荐
浅谈django中的认证与登录
Oct 31 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
Python利用scapy实现ARP欺骗的方法
Jul 23 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python 如何提高元组的可读性
Aug 26 Python
python 命名规范知识点汇总
Feb 14 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
利用python在excel中画图的实现方法
Mar 17 Python
python subprocess pipe 实时输出日志的操作
Dec 05 Python
Python实现批量自动整理文件
Mar 16 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 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
js 页面输出值
2008/11/30 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
js实现右键菜单功能
2016/11/28 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
python实现分页效果
2017/10/25 Python
Python lambda表达式用法实例分析
2018/12/25 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
python开发前景如何
2020/06/11 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
工程采购员岗位职责
2014/03/09 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
社区工作者个人总结
2015/02/28 职场文书
房产电话营销开场白
2015/05/29 职场文书
行政处罚决定书
2015/06/24 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
Python&Matlab实现樱花的绘制
2022/04/07 Python