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. Xshell便捷设置实现linux复制粘贴

    说明:在window系统中,Ctrl+C是复制的快捷键,Ctrl+V是粘贴的快捷键,但在xshell中,Ctrl+C 代表着中断当前指令. 解决办法如下: 1.  使用xshell中的复制粘贴快捷键复 ...

  2. tcp和udp的socket形式

    Sockets编程有三种: (1).流套接字(SOCK_STREAM): (2).数据包套接字(SOCK_DGRAM): (3).原始套接字(SOCK_RAW): TCP是流套接字 UCP是数据包套接 ...

  3. mysql,user表中各字段的含义

    1.查询user表 select * from mysql.user 2.修改用户密码 ALTER user ' 3.user表中各字段的含义 Select_priv:用户可以通过SELECT命令选择 ...

  4. linux中find,locate,whereis,which关系和用法

    主要有find,locate,whereis,which等 1. find是最常用也是最强大的查找命令,它可以查找任何类型的文件. find命令的一般格式为:find <指定目录>< ...

  5. 忘记mysql root用户密码的解决办法(skip-grant-tables)

    skip-grant-tables顾名思义,数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录. 注意: 这种情况只有在忘记root密码 不得已重启数据库的情况下使用的.现网环境慎用,需要重启 ...

  6. 网站爬取-案例一:猫眼电影TOP100

    今天有小朋友说想看一下猫眼TOP100的爬取数据,要TOP100的名单,让我给发过去,其实很简单,先来看下目标网站: 建议大家都用谷歌浏览器: 这是我们要抓取的内容,100个数据,很少 我们看一下页面 ...

  7. php的header方法

    http://www.cnblogs.com/fengzheng126/archive/2012/04/21/2461475.html

  8. 可用倍增LCA解题

    http://codevs.cn/problem/2370/ #include<bits/stdc++.h> using namespace std; ; ; struct node{ i ...

  9. 图表|Line graphs|Bar graphs|Pie graphs|Scatter graphs|标目|标值|图解|图题|标值|

    科研论文写作-图表 图像的特点是直观性高效,可用于描述非线性关系,将文字难以描述的内容表达出来. Line graphs中有自变量和因变量,用于表示变化趋势.为了清晰简洁和易于辨认,所以其中的线条最好 ...

  10. deeplearning.ai 序列模型 Week 2 NLP & Word Embeddings

    1. Word representation One-hot representation的缺点:把每个单词独立对待,导致对相关词的泛化能力不强.比如训练出“I want a glass of ora ...