1. 简介
邮件是一种日常生活中常用的通信方式。Python 提供了方便的模块可以用来发送邮件,其中常用的是 email 和 smtplib 模块。本文将介绍如何使用这两个模块来发送简单的邮件。
2. 安装依赖模块
在开始之前,需要确保你的 Python 环境中已经安装了 email 和 smtplib 模块。
如果没有安装,可以使用以下命令安装:
pip install email smtplib
3. 创建邮件消息
3.1 构建邮件内容
要发送一封邮件,首先我们需要构建邮件的内容。使用 email 模块中的 Message 类来创建邮件消息对象。
下面是一个例子:
from email.message import EmailMessage
# 创建邮件消息对象
msg = EmailMessage()
在这个例子中,我们创建了一个名为 msg 的邮件消息对象。
3.2 设置邮件内容
邮件消息对象包含了邮件的各种信息,例如发件人、收件人、主题、正文等。
我们可以使用邮件消息对象的相应属性来设置这些信息。
例如,要设置发件人和收件人可以使用以下代码:
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
3.3 添加邮件正文
要添加邮件正文,可以使用邮件消息对象的 set_content() 方法。
msg.set_content('这是一封测试邮件。')
在这个例子中,我们将邮件的正文设置为 "这是一封测试邮件。"。
3.4 添加附件
如果需要添加附件,可以使用邮件消息对象的 add_attachment() 方法。
from email.mime.text import MIMEText
# 创建附件对象
attachment = MIMEText('这是一个附件。')
attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt')
# 将附件添加到邮件消息对象中
msg.add_attachment(attachment)
在这个例子中,我们创建了一个名为 attachment 的附件对象,并将其添加到邮件消息对象中。
4. 发送邮件
构建好邮件消息对象后,就可以使用 smtplib 模块来发送邮件。
下面是一个发送邮件的例子:
import smtplib
# 邮件服务器的地址和端口
smtp_server = 'smtp.example.com'
smtp_port = 587
# 发件人和收件人的邮箱地址
sender = 'sender@example.com'
recipient = 'recipient@example.com'
# 登录邮件服务器
smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
smtp_obj.starttls()
smtp_obj.login(sender, 'password')
# 发送邮件
smtp_obj.send_message(msg)
# 退出登录
smtp_obj.quit()
在这个例子中,我们首先创建了一个名为 smtp_obj 的 SMTP 对象,并使用 starttls() 方法启用了安全连接。
然后使用 login() 方法登录邮件服务器,其中 sender 为发件人的邮箱地址,'password' 为发件人的登录密码。
最后使用 send_message() 方法发送邮件消息,并使用 quit() 方法退出登录。
5. 示例代码
from email.message import EmailMessage
import smtplib
# 创建邮件消息对象
msg = EmailMessage()
# 设置发件人和收件人
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
# 添加邮件正文
msg.set_content('这是一封测试邮件。')
# 创建附件对象
attachment = MIMEText('这是一个附件。')
attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt')
# 将附件添加到邮件消息对象中
msg.add_attachment(attachment)
# 邮件服务器的地址和端口
smtp_server = 'smtp.example.com'
smtp_port = 587
# 发件人和收件人的邮箱地址
sender = 'sender@example.com'
recipient = 'recipient@example.com'
# 登录邮件服务器
smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
smtp_obj.starttls()
smtp_obj.login(sender, 'password')
# 发送邮件
smtp_obj.send_message(msg)
# 退出登录
smtp_obj.quit()
以上代码是一个完整的示例,你可以根据自己的需求进行修改。
6. 总结
本文介绍了如何使用 Python 的 email 和 smtplib 模块来发送简单的邮件。
首先,我们使用 EmailMessage 类创建邮件消息对象,然后设置邮件内容,包括发件人、收件人、主题、正文和附件。
接下来,我们使用 SMTP 对象来连接邮件服务器,登录邮箱,并使用 send_message() 方法发送邮件。
最后,我们使用 quit() 方法退出登录。
希望本文能够帮助你学习和使用 Python 发送邮件功能。