python中email.mime.text模块实现附件邮件的方法
发布时间:2023-12-24 01:09:36
email.mime.text模块是python中用于创建纯文本邮件的模块。可以使用该模块创建包含附件的邮件。
下面给出一个使用email.mime.text模块创建附件邮件的例子:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
# 填写发件人、收件人和邮件信息
from_addr = "sender@gmail.com"
to_addr = "recipient@gmail.com"
subject = "附件邮件测试"
body = "这是一封带有附件的邮件,请查收!"
# 创建一个带附件的邮件实例
msg = MIMEMultipart()
# 设置邮件的主题和正文
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject
# 将正文添加到邮件中
msg.attach(MIMEText(body, 'plain'))
# 打开附件文件
filename = "attachment.pdf"
attachment = open(filename, "rb")
# 创建附件实例
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
# 将附件添加到邮件中
msg.attach(part)
# 发送邮件
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(from_addr, "password") # 填写发件人邮箱密码
text = msg.as_string()
server.sendmail(from_addr, to_addr, text)
server.quit()
在上述例子中,首先需要导入smtplib模块和email相关的模块,然后填写发件人、收件人和邮件信息。
创建一个MIMEMultipart对象,并将邮件的主题和正文设置为适当的值。
然后将正文添加到邮件中,使用open()打开要附加的文件,创建一个MIMEBase对象,设置其payload为附件的内容,并使用encode_base64()对内容进行编码。
接下来,设置附件的Content-Disposition头,并将附件添加到邮件中。
最后,使用smtplib.SMTP()连接到SMTP服务器,登录发件人邮箱,将邮件发送给收件人,并退出SMTP服务器。
注意:在代码中需要替换发件人邮箱、密码、收件人邮箱以及附件的文件名。
以上是使用email.mime.text模块实现附件邮件的基本方法,并附上了示例代码。你可以根据自己的需求进行修改和扩展。
