如何使用Python发送电子邮件

130 阅读3分钟

发送电子邮件在现代社会中变得越来越普遍,而Python提供了一个简单而强大的模块,帮助我们通过代码自动化发送电子邮件。在本教程中,我们将学习如何使用Python的smtplib库发送电子邮件,以及如何构建简单的邮件内容。

准备工作

在开始之前,我们需要准备以下内容:

  1. 一个有效的电子邮箱账号和密码,用于发送邮件。在本教程中,我们将使用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库,你可以轻松地在自动化脚本中集成电子邮件发送功能,方便地通知用户或监控系统状态。