欢迎访问宙启技术站
智能推送

使用email.MIMEBase模块发送包含附件的电子邮件

发布时间:2023-12-14 03:28:42

使用email.MIMEBase模块发送包含附件的电子邮件的步骤如下:

1. 导入相关模块

首先,我们需要导入email库中的相关模块。下面是一个基本的导入示例:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

2. 设置邮件基本信息

接下来,我们需要设置电子邮件的主题、发送者、收件人等基本信息。下面是一个基本的设置示例:

fromaddr = "sender@example.com"
toaddr = "receiver@example.com"
subject = "带附件的电子邮件"

# 创建一个MIMEMultipart对象
msg = MIMEMultipart()

# 设置主题、发送者和收件人
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = subject

3. 添加文本部分

然后,我们需要添加电子邮件的文本部分。下面是一个基本的设置示例:

# 添加文本部分
body = "这是一个带附件的电子邮件示例。"
msg.attach(MIMEText(body, 'plain'))

4. 添加附件部分

现在,我们需要添加电子邮件的附件部分。下面是一个基本的设置示例:

# 添加附件部分
filename = "example.txt"  # 附件文件名
attachment = open(filename, "rb")  # 打开附件文件

# 创建一个MIMEBase对象
part = MIMEBase('application', 'octet-stream')

# 将附件内容添加到MIMEBase对象中
part.set_payload((attachment).read())

# 对附件进行Base64编码
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

# 将附件部分添加到MIMEMultipart对象中
msg.attach(part)

# 关闭附件文件
attachment.close()

5. 发送邮件

最后,我们需要通过SMTP协议发送电子邮件。下面是一个基本的发送邮件示例:

# 连接SMTP服务器
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()

# 登录邮箱账号
username = "your_username"
password = "your_password"
server.login(username, password)

# 发送电子邮件
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)

# 关闭SMTP服务器连接
server.quit()

以上是使用email.MIMEBase模块发送包含附件的电子邮件的一个简单示例。你可以根据需要自行修改和扩展。记得将示例代码中的占位符(如邮件地址、用户名和密码)替换为实际的值。