如何使用Python内置的模块来发送邮件?

破碎星辰 2024-05-31 ⋅ 17 阅读

在现代社会中,电子邮件是人与人之间最普遍的沟通方式之一。而Python提供了内置的邮件模块,使得我们能够通过代码来自动化发送电子邮件。本文将介绍如何使用Python内置的邮件模块来发送邮件。

准备工作

在开始之前,我们需要确保Python中已经安装了smtplib和email这两个模块。对于绝大多数Python发行版来说,这两个模块都是内置的,因此无需额外安装。

导入模块

首先,我们需要导入smtplib和email模块。smtplib模块提供了SMTP类,用于连接SMTP服务器并发送邮件。email模块则用于构建邮件的内容。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

创建邮件内容

下一步是创建邮件的内容。我们可以使用email模块的MIMEText类来创建纯文本或HTML格式的邮件内容。

# 创建纯文本邮件内容
text = "这是一封测试邮件。"

# 创建HTML格式的邮件内容
html = """
<html>
<body>
<h1>这是一封测试邮件。</h1>
<p>这是一封通过Python代码自动发送的邮件。</p>
</body>
</html>
"""

设置邮件标题

接下来,我们需要设置邮件的标题。

subject = "测试邮件"

设置发件人和收件人

我们还需要设置发件人和收件人的邮箱地址。

sender = "sender@example.com"
receiver = "receiver@example.com"

设置SMTP服务器

在发送邮件之前,我们需要连接到SMTP服务器。大多数邮件服务提供商都会提供SMTP服务器的地址和端口号。例如,Gmail的SMTP服务器地址是"smtp.gmail.com",端口号是587。

smtp_server = "smtp.gmail.com"
smtp_port = 587

创建邮件对象并设置头部信息

现在我们可以创建邮件对象并设置头部信息了。我们可以使用email模块的Header类来设置邮件的主题。

message = MIMEText(text, "plain", "utf-8")
message["From"] = Header(sender, "utf-8")
message["To"] = Header(receiver, "utf-8")
message["Subject"] = Header(subject, "utf-8")

连接SMTP服务器并发送邮件

最后一步是连接到SMTP服务器,并使用认证信息登录到SMTP服务器。然后,我们可以调用SMTP类的sendmail方法来发送邮件。

try:
    smtpObj = smtplib.SMTP(smtp_server, smtp_port)
    smtpObj.starttls()  # 启用TLS加密
    smtpObj.login(sender, password)  # 登录SMTP服务器
    smtpObj.sendmail(sender, [receiver], message.as_string())  # 发送邮件
    smtpObj.quit()  # 退出SMTP服务器
    print("邮件发送成功")
except smtplib.SMTPException as e:
    print("邮件发送失败:" + str(e))

总结

通过Python内置的邮件模块,我们能够轻松地自动发送电子邮件。在本文中,我们了解了如何创建邮件内容,设置邮件标题和发件人、收件人的邮箱地址,以及如何连接到SMTP服务器并发送邮件。希望本文能够帮助你快速掌握使用Python发送邮件的方法。

参考资料:


全部评论: 0

    我有话说: