python3使用SMTP发送简单文本邮件
作者:神马东东2012 发布时间:2023-09-28 10:07:24
标签:python,发送邮件
一、设置开启SMTP服务并获取授权码
0.如果使用第三方邮件服务器SMTP服务来发送邮件,首先要在邮箱设置里面开启POP3/SMTP/IMAP服务,下面以163邮箱为例,其它邮箱设置方法相同
163邮箱SMTP服务器:smtp.163.com
QQ邮箱SMTP服务器:smtp.qq.com
1.首先登录自己的邮箱,找到【设置】》【POP3/SMTP/IMAP】,开启相应的服务
2.然后开启并获取客户端授权码(这里的授权码并不是登录邮箱时的密码,而是第三方邮箱服务使用的授权码)
二、使用Python3 发送邮件
0.使用的环境为:
Python 3.6.3 (64bit)
PyCharm 2017.3 (64bit)
1.实现代码:
import smtplib
from email.header import Header # 用来设置邮件头和邮件主题
from email.mime.text import MIMEText # 发送正文只包含简单文本的邮件,引入MIMEText即可
# 发件人和收件人
sender = 'XXXXXXXXXXX@163.com'
receiver = 'XXXXXXXXX@qq.com'
# 所使用的用来发送邮件的SMTP服务器
smtpServer = 'smtp.163.com'
# 发送邮箱的用户名和授权码(不是登录邮箱的密码)
username = 'XXXXXXXXXXX'
password = 'XXXXXXXX'
mail_title = '这里是邮件的主题'
mail_body = '这里是邮件的正文'
# 创建一个实例
message = MIMEText(mail_body, 'plain', 'utf-8') # 邮件正文
message['From'] = sender # 邮件上显示的发件人
message['To'] = receiver # 邮件上显示的收件人
message['Subject'] = Header(mail_title, 'utf-8') # 邮件主题
try:
smtp = smtplib.SMTP() # 创建一个连接
smtp.connect(smtpServer) # 连接发送邮件的服务器
smtp.login(username, password) # 登录服务器
smtp.sendmail(sender, receiver, message.as_string()) # 填入邮件的相关信息并发送
print("邮件发送成功!!!")
smtp.quit()
except smtplib.SMTPException:
print("邮件发送失败!!!")
2.发送成功之后,如果在收件人的邮箱看不到邮件,可能是被当做垃圾邮件拦截了,可以去拦截记录里面找一下
发送方发送的邮件:
接收方收到的邮件:
3.这里是发送最简单的格式的邮件的示例,正文只包含文本
还可以发送:
正文为HTML格式的邮件
包含附件的邮件(附件可以是HTML网页,TXT文本,JPG图片,以及音频、视频等)
后面继续讲
来源:https://blog.csdn.net/u013250071/article/details/79037440


猜你喜欢
- 前言 作者: 罗昭成PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://note.youdao.com/not
- (一)Git的安装和配置1.下载git,git的官网是:https://git-scm.com/1.1右下角点击安装,安装过程一直下一步。1
- 布尔表示两值之一:True 或 False。 布尔值在编程中,通常需要知道表达式是 True 还是 False。可以计算 Python 中的
- 前言:情人节、三八女神节、520、七夕节、圣诞节、元旦、生日、新年、各种纪念日……这些节日,对于
- import csvclass HandleCsv: ''' csv文件处理类
- 案例package mainimport ( _ "github.com/go-sql-driver/mysql&q
- 这篇文章主要介绍了Pytest mark使用实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 前言大家应该都知道,我们在mysql运维中出现过不少因为update/delete条件错误导致数据被误更新或者删除的case,为避免类似问题
- 最近对动易CMS有个研究任务,具体研究什么,嘿嘿,保密。网络收集了九个常见的错误原因分析及解决方法错误提示: ADODB.Recordset
- 用Python对数学函数进行求值、求偏导from sympy import *# x = Symbol("x")# y
- 前言本文主要给大家介绍了Go语言中函数new与make的使用和区别,关于Go语言中new和make是内建的两个函数,主要用来创建分配类型内存
- 这段时间服务器崩溃2次,一直没有找到原因,今天看到论坛发出的错误信息邮件,想起可能是MySQL的默认连接数引起的问题,一查果然,老天,默认
- 本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052一、Mnist 分
- 自定义函数import requestsfrom bs4 import BeautifulSoupheaders={'User-Ag
- 1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 &
- Oracle中SQL语句连接字符串的符号为|| select catstr(tcdm) || (',') from T_YW
- 本文实例讲述了mysql 设置自动创建时间及修改时间的方法。分享给大家供大家参考,具体如下:第一种,通过ddl进行定义CREATE TABL
- 函数可以有0或多个返回值,返回值需要指定数据类型,返回值通过return关键字来指定。return可以有参数,也可以没有参数,这些返回值可以
- numpy数组的广播功能强大,但是也同时让人疑惑不解,现在让我们来谈谈其中的原理。广播原则:如果两个数组的后缘维度(即:从末尾开始算起的维度
- 阅读本文大概需要3分钟关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下。趣味编程其实是最好的学习途