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

使用Python中的email.mime.multipart发送邮件

发布时间:2023-12-14 11:46:39

在Python中,我们可以使用email和smtplib模块来发送邮件。首先,我们需要创建一个MIMEMultipart对象来构建邮件内容。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# 创建MIMEMultipart对象
msg = MIMEMultipart()

# 设置邮件主题
msg['Subject'] = 'Test email'

# 设置发件人和收件人
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'

# 添加邮件正文
body = 'This is the body of the email'
msg.attach(MIMEText(body, 'plain'))

# 添加附件
attachment = MIMEText(open('attachment.txt', 'rb').read(), 'base64', 'utf-8')
attachment['Content-Disposition'] = 'attachment; filename="attachment.txt"'
msg.attach(attachment)

# 发送邮件
smtpObj = smtplib.SMTP('smtp.example.com', 25)
smtpObj.login('sender@example.com', 'password')
smtpObj.sendmail(msg['From'], msg['To'], msg.as_string())
smtpObj.quit()

在这个例子中,我们首先导入了smtplib和MIMEMultipart模块。然后,我们创建了一个MIMEMultipart对象msg来构建邮件内容。

接下来,我们通过msg['Subject']设置了邮件的主题,msg['From']msg['To']设置了发件人和收件人。

我们使用MIMEText对象在邮件中添加了一个简单的文本正文,通过msg.attach()方法将其附加到msg中。

我们还在邮件中添加了一个附件。首先,我们读取了名为attachment.txt的文件,并使用MIMEText对象将其转换为Base64编码的字符串,然后通过Content-Disposition头将其标记为附件。最后,我们将附件添加到msg中。

最后,我们使用smtplib模块来建立与邮件服务器的连接,并使用smtpObj.login()方法进行身份验证。然后,我们使用smtpObj.sendmail()方法发送邮件。最后,我们使用smtpObj.quit()方法关闭与邮件服务器的连接。

这样,我们就可以使用Python中的email.mime.multipart模块发送带有附件的邮件了。