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