【Python军火库】smtplib+email:一起来用Python发送电子邮件吧!

本文介绍了Python使用smtplib和email模块发送电子邮件的详细过程。讲解了smtplib的使用步骤,重点说明了开启SMTP服务获取授权码以及解决中文内容发送问题。同时,详细阐述了email模块的常用函数,包括Header、MIMEText、MIMEImage和MIMEMultipart,展示了如何构造复杂的邮件内容,如HTML文本、内嵌图片和附件。最后,给出了整合smtplib与email发送邮件的代码示例。
摘要由CSDN通过智能技术生成

在这里插入图片描述


一、smtplib模块

SMTP 简单邮件传输协议,是专门用于发送电子邮件的协议。

SMTP规定了电子邮件应该如何格式化、加密、在邮件服务器之间传递,以及点击发送后计算机要处理的所有其他细节。

利用Python自带的smtplib模块,我们可以实现从第三方SMTP服务器(比如QQ邮箱)登录并发送电子邮件。

——

1. smtplib使用步骤

代码演示:

import smtplib

# 第一步:创建SMTP服务器对象
smtpobj = smtplib.SMTP('smtp.qq.com',587)

# 第二步:首先跟服务器打招呼
smtpobj.ehlo()

# 第三步:如果连接的SMTP的587端口,需要进行连接加密步骤(如果是465端口则可以跳过)
smtpobj.starttls()

# 第四步:登录到SMTP服务器
smtpobj.login('*******@qq.com','aaaabbbbccc') 
# 输入邮箱账号以及授权码(这里并不是输入邮箱密码)

# 第五步:发送电子邮件(发件地址,收件地址,内容)
smtpobj.sendmail('*******@qq.com', '########@qq.com',
	'Subject: So long. \nDear Alice, so long and thanks for all the fish. Sincerely,Bob')  # Subject为邮件主题,通过换行符(\n)来区分主题和正文

#第六步:从SMTP服务器断开
smtpobj.quit()

——

2. 两个重点关注的点

需要重要说明的两个地方:

【01】如何开启第三方SMTP服务器并获得授权码

以QQ邮箱为例,登录自己的QQ邮箱,进入 [设置-账户],即可看到关于SMTP服务开启的选项,点击开启,按照提示要求进行,即可打开我们QQ邮箱的SMTP服务并获得相对应的授权码。
在这里插入图片描述
【02】邮件发送中无法使用中文的问题

如果邮件内容中有中文字符

# 第五步:发送电子邮件(发件地址,收件地址,内容)
smtpobj.sendmail('*******@qq.com', '########@qq.com',
	'Subject: 大家好\n你好,你好鸭!')     # 无法使用中文字符

会出现以下报错
在这里插入图片描述
本人也查阅了相关资料,发现该错误一般是出现在Python2的版本中,Python3默认字符集基本都是"utf-8"。

所以也不清楚为啥会出现无法使用中文的情况(要是哪些大神知道这是啥原因,恳请指点一二!

那就意味着我们不能发中文内容的邮件呢么?

当然不是,在smtplib基础上结合email,我们就能实现。
在这里插入图片描述

二、email模块

smtplib与email相结合,我们能够实现更加强大的发送邮件功能,不仅能够发送纯文本,还能够发送html文本邮件、正文中含有图片的邮件以及带有附件的邮件。

那么我们首先来认识了解一下email模块中我们常用的函数方法。

——

1. 常用函数详解

from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart

通过使用Header()函数,我们可以定义邮件头信息,比如From(发件人)、To(收件人)、Subject(邮件主题)。

msg_root[&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值