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

Python编写带附件的MIMEText邮件

发布时间:2023-12-11 13:46:45

Python可以使用smtplib和email两个库编写带附件的MIMEText邮件。

首先,我们需要导入smtplib、email.mime.text和email.mime.multipart模块:

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

然后,我们可以创建一个MIMEMultipart对象,用于表示邮件主体和附件:

msg = MIMEMultipart()

接下来,我们可以添加邮件正文。可以使用MIMEText对象指定邮件正文的内容和格式:

body = "这是一封带附件的邮件"
msg.attach(MIMEText(body, "plain"))

然后,我们可以添加附件。可以使用MIMEText对象指定附件的内容和格式,并在MIMEMultipart对象中添加附件:

attachment = MIMEText(open("附件.txt", "rb").read(), "plain")
attachment.add_header("Content-Disposition", "attachment", filename="附件.txt")
msg.attach(attachment)

接下来,我们需要指定邮件的发送方、接收方和主题:

msg["From"] = "发送方邮箱"
msg["To"] = "接收方邮箱"
msg["Subject"] = "带附件的邮件"

最后,我们可以使用smtplib库发送邮件:

smtp = smtplib.SMTP("smtp.163.com")  # 设置SMTP服务器地址
smtp.login("发送方邮箱", "密码")  # 登录SMTP服务器
smtp.sendmail("发送方邮箱", "接收方邮箱", msg.as_string())  # 发送邮件
smtp.quit()  # 退出SMTP服务器

完整的代码如下:

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

msg = MIMEMultipart()

body = "这是一封带附件的邮件"
msg.attach(MIMEText(body, "plain"))

attachment = MIMEText(open("附件.txt", "rb").read(), "plain")
attachment.add_header("Content-Disposition", "attachment", filename="附件.txt")
msg.attach(attachment)

msg["From"] = "发送方邮箱"
msg["To"] = "接收方邮箱"
msg["Subject"] = "带附件的邮件"

smtp = smtplib.SMTP("smtp.163.com")
smtp.login("发送方邮箱", "密码")
smtp.sendmail("发送方邮箱", "接收方邮箱", msg.as_string())
smtp.quit()

上述代码中,我们使用了163邮箱作为SMTP服务器,需要根据具体情况替换为自己的SMTP服务器地址、发送方邮箱和密码。同时,需要将接收方邮箱和附件所在路径替换为真实的值。

带有附件的MIMEText邮件的例子就是这样。使用以上代码,您可以通过Python发送带有附件的邮件。