1、代码如下:

import smtplib

from email.message from EmailMessage

# smtplib模块负责发送邮件服务

# email.message模块负责构建邮件,然后交给smtplib发送

# 定义SMTP服务器地址
smtp_server = 'smtp.163.com'
# 定义发件人地址
from_addr = "***********@163.com"
# 定义登录密码
password = '**********'
# 定义收件人
to_addr = "**********@qq.com" # 创建SMTP连接
conn = smtplib.SMTP_SSL(smtp_server, 465) conn.set_debuglevel(1) conn.login(from_addr, password) # 创建邮件对象
msg = EmailMessage() # 设置邮件内容
msg.set_content('你好,我正在测试如何使用python发送电子邮件', 'plain', 'utf-8') # 设置邮件主题
msg['subject'] = "一封测试smtplib模块的邮件" msg['from'] = from_addr msg['to'] = to_addr # 发送邮件
conn.sendmail(from_addr, [to_addr], msg.as_string()) # 退出连接 conn.quit()

2、常见异常解决

2.1SMTPAuthenticationError

# 定义发件人地址
from_addr = "***********@163.com"
# 定义登录密码
password = '**********'
# 定义收件人
to_addr = "**********@qq.com" # 创建SMTP连接
conn = smtplib.SMTP_SSL(smtp_server, 465) conn.set_debuglevel(1) conn.login(from_addr, password)

出现这个错误是由于conn.login(from_addr, password)中的password不是登录客户端的密码,再强调一遍不是登录客户端的密码,是授权码,下面演示如何获取授权码,以

网易邮箱为例:

登录进入后,界面所示:

在设置里面有一个POP3/SMTP/IMAP,点击进入该页面,再点击箭头所示的客户端授权密码

要保证设置客户端授权码处于开启状态,如果记得就不用重置,如果不记得,就按照要求一步一步重置,然后用自己重置的授权码,作为登录密码就可以了。

2.2SMTPDataError

出现这样的异常是由于自己的邮件信息没有设置完整

# 创建邮件对象
msg = EmailMessage() # 设置邮件内容
msg.set_content('你好,我正在测试如何使用python发送电子邮件', 'plain', 'utf-8') # 发送邮件
conn.sendmail(from_addr, [to_addr], msg.as_string()) # 退出连接 conn.quit()

从上述代码中,我们知道从创建邮件对象开始,只设置了邮件内容,所有才会出现这样的错误,还有设置至少三个信息,这些信息会显示在你的邮件中。

# 邮件主题
msg['subject'] = "一封测试smtplib模块的邮件" # 邮件发送者
msg['from'] = from_addr # 邮件接收者
msg['to'] = to_addr

邮件对象添加这三个信息后,就能发送成功了。

3、参考链接

http://c.biancheng.net/view/2665.html

https://www.cnblogs.com/fengyiru6369/p/7472679.html

https://blog.csdn.net/qq_40423339/article/details/87866001

python爬虫-smtplib模块发送邮件的更多相关文章

  1. python之smtplib模块 发送邮件

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #smtplib模块 发送邮件 import smtplib from email.mime.text imp ...

  2. python调用smtplib模块发送邮件

    #!/usr/bin/env python #coding: utf-8 import smtplib from email.mime.text import MIMEText from email. ...

  3. 通过python操作smtplib模块发送邮件

    # gconf.py SMTP_SERVER_HOST='smtp.exmail.qq.com' SMTP_SERVER_PORT=25 SMTP_USER='jack@qq.com' # 邮箱客户端 ...

  4. python之使用smtplib模块发送邮件

    # 使用smtplib模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Heade ...

  5. python爬虫 urllib模块url编码处理

    案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据) import urllib.request # 1.指定url url = 'https://www.sogou. ...

  6. python 爬虫 urllib模块 目录

    python 爬虫 urllib模块介绍 python 爬虫 urllib模块 url编码处理 python 爬虫 urllib模块 反爬虫机制UA python 爬虫 urllib模块 发起post ...

  7. python:利用smtplib模块发送邮件

    自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用例后,将测试报告(HTML.截图.附件)通过邮件方式发送. 参考代码:send_mail.py 一.python对 ...

  8. python:利用smtplib模块发送邮件详解

    自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用例后,将测试报告(HTML.截图.附件)通过邮件方式发送. 首先我们要做: 进入163邮箱,点击设置中的pop3/ ...

  9. 使用python调用email模块发送邮件附件

    使用python调用email模块实现附件发送 需要模块: import datetime import time import sys import mimetypes import smtplib ...

随机推荐

  1. 【二进制枚举+LCS】Card Hand Sorting

    [二进制枚举+LCS]Card Hand Sorting 题目描述 When dealt cards in the card game Plump it is a good idea to start ...

  2. win10+CUDA9.0176、CUDNN7.6.0安装

    在github上下载了一个文本分类的代码,包含了CNN.LSTM等分类模型,运行时说我的CUDA版本不行,我原来是9.1,让我安装9.0 然后开始卸载9.1啊,在此感谢博主:https://blog. ...

  3. ASA5505升级license

    1.准备工作 首先先看下目前的license # show activation-key Serial Number: JMX1J364741 Running Permanent Activation ...

  4. day14-单继承

    #面向对象的三大特征:继承.多态.封装. #一.单继承: # 1. class Animal: #没有父类,默认继承了顶级父类object类. def __init__(self,name,aggr, ...

  5. 深入探讨Java中的异常与错误处理

    Java中的异常处理机制已经比较成熟,我们的Java程序到处充满了异常的可能,如果对这些异常不做预先的处理,那么将来程序崩溃就无从调试,很难找到异常所在的位置.本文将探讨一下Java中异常与错误的处理 ...

  6. linux下使用过的命令总结(未整理完)

    1.常用命令不需解释 ls\cd\cp\mv\pwd\file\vi\vim\cat 2.getconf LONG_BIT 终端返回32表示操作系统32位,返回64表示操作系统64位. 3.ifcon ...

  7. python常用包

    今日所得 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 subprocess模块 collections模块 namedtuple:具名元组 #定义方式一: ...

  8. SpringMVC静态资源拦截的问题

    通常在web.xml中的核心控制器的DispatcherServlet中的url-pattern属性配置成类似“/”的拦截路径,但是会出现静态资源找不到的问题,比如js脚本.图片.css等无法加载,那 ...

  9. C 语言高效编程与代码优化

    译文链接:http://www.codeceo.com/article/c-high-performance-coding.html英文原文:Writing Efficient C and C Cod ...

  10. docker 创建实例

    docker创建mysql实例要注意表名大小写和端口号映射的问题.下面是使用文件挂载解决表名大小写问题. docker run --name mysql-1 -e MYSQL_ROOT_PASSWOR ...