发送电子邮件在现代社会中变得越来越普遍,而Python提供了一个简单而强大的模块,帮助我们通过代码自动化发送电子邮件。在本教程中,我们将学习如何使用Python的smtplib库发送电子邮件,以及如何构建简单的邮件内容。
准备工作
在开始之前,我们需要准备以下内容:
- 一个有效的电子邮箱账号和密码,用于发送邮件。在本教程中,我们将使用QQ邮箱作为示例。
步骤1:导入所需模块
首先,我们需要导入Python的smtplib库和其他相关的模块,以及邮件内容所需的类:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
步骤2:设置发送和接收信息
在这一步中,我们需要设置发送邮箱的账号和授权码,以及接收人的邮箱地址。
sendAddr = "你的发送邮箱@qq.com" # 发送邮箱账号
password = "你的邮箱授权码" # 注意:这里填写的是邮箱的授权码,不是登录密码
recipient_addr = "接收者的邮箱地址@qq.com" # 接收人的邮箱地址
步骤3:构建邮件内容
在这一步中,我们需要构建邮件的主题和正文。
subject = "邮件主题" # 邮件主题
body = "邮件内容" # 邮件正文
步骤4:创建邮件对象
使用email.mime模块,我们可以创建一个包含邮件主题和正文的MIMEMultipart对象。
msg = MIMEMultipart()
msg['From'] = sendAddr
msg['To'] = recipient_addr
msg['Subject'] = Header(subject, 'utf-8')
msg.attach(MIMEText(body, 'plain', 'utf-8'))
步骤5:发送邮件
现在,我们已经准备好了邮件对象,接下来我们可以使用smtplib库来连接邮件服务器,并发送邮件。
try:
server = smtplib.SMTP_SSL('smtp.qq.com', 465) # 使用QQ邮箱的SMTP服务器
server.login(sendAddr, password) # 登录邮箱
server.sendmail(sendAddr, recipient_addr, msg.as_string()) # 发送邮件
print("邮件发送成功!")
server.quit()
except Exception as e:
print(f"发送邮件失败: {e}")
完整代码
下面是整个代码的完整版本:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
# 发送邮箱信息
sendAddr = "你的发送邮箱@qq.com" # 发送邮箱账号
password = "你的邮箱授权码" # 注意:这里填写的是邮箱的授权码,不是登录密码
# 接收人信息
recipient_addr = "接收者的邮箱地址@qq.com" # 接收人的邮箱地址
# 邮件内容
subject = "邮件主题" # 邮件主题
body = "邮件内容" # 邮件正文
msg = MIMEMultipart()
msg['From'] = sendAddr
msg['To'] = recipient_addr
msg['Subject'] = Header(subject, 'utf-8')
msg.attach(MIMEText(body, 'plain', 'utf-8'))
# 发送邮件
try:
server = smtplib.SMTP_SSL('smtp.qq.com', 465) # 使用QQ邮箱的SMTP服务器
server.login(sendAddr, password) # 登录邮箱
server.sendmail(sendAddr, recipient_addr, msg.as_string()) # 发送邮件
print("邮件发送成功!")
server.quit()
except Exception as e:
print(f"发送邮件失败: {e}")
结束语
恭喜!你已经成功学会了如何使用Python发送电子邮件。通过这个简单的例子,你可以进一步扩展和定制邮件内容,比如添加附件、发送HTML格式的邮件等。使用Python的smtplib库,你可以轻松地在自动化脚本中集成电子邮件发送功能,方便地通知用户或监控系统状态。