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. c语言中fflush的运用为什么没有效果呢,测试平台linux

    /************************************************************************* > File Name: clearing. ...

  2. 爬虫笔记(三)——HTTP协议请求实战

    如果要进行客户端与服务器端之间的消息传递,我们可以使用HTTP协议请求进行. HTTP协议请求主要分为6种类型,各类型的主要作用如下: GET请求:GET请求会通过URL网址传递信息,可以直接在URL ...

  3. bat脚本修改dns(判断系统版本)

    @echo off systeminfo if "%OS 名称%"=="%7%" goto windows7:windows7echo 正在设置本机主DNS , ...

  4. day06-迭代器

    一.迭代器: 1.可迭代协议:含有__iter__方法. 2.迭代器协议:同时含有__iter__和__next__方法.迭代器是可迭代对象. iterator迭代器. 3.使用可迭代对象有什么好处? ...

  5. rest framework-认证&权限&限制-长期维护

    ###############   自定义token认证    ############### 表 class User(models.Model): name=models.CharField(ma ...

  6. AppCompatActivity 透明背景

    <!-- 背景透明样式 --> <style name="AppTheme.transparent" parent="Theme.AppCompat.L ...

  7. nmon监控指标

    一.NMON中的各项参数指标: SYS_SUMM:显示当前服务器的总体性能情况 Total System I/OStatistics: Avg tps during an interval:显示采集间 ...

  8. xshell+xftp将项目部署到远程服务器上

    Xshell 简介: Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xshell 通过互联网到远程主机的 ...

  9. 利用Python进行图片发送与接收的两种方法---包含客户端和服务器端代码

    第一种方法 opencv.requests.flask 此方法比较耗费时间 600毫秒左右 客户端代码 #coding:utf-8 import cv2 import json import requ ...

  10. springboot学习笔记:6.内置tomcat启动和外部tomcat部署总结

    springboot的web项目的启动主要分为: 一.使用内置tomcat启动 启动方式: 1.IDEA中main函数启动 2.mvn springboot-run 命令 3.java -jar XX ...