使用Python的email.mime.multipart库发送带有Excel附件的邮件
发布时间:2023-12-14 11:57:44
Python的email.mime.multipart模块是Python中用于构建带有附件的邮件的库。下面是一个使用email.mime.multipart模块发送带有Excel附件的邮件的例子:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
# 设置发件人、收件人、邮件主题
from_address = "your_email@gmail.com"
to_address = "recipient_email@example.com"
subject = "Email with Excel Attachment"
# 创建一个带有附件的邮件实例
msg = MIMEMultipart()
msg["From"] = from_address
msg["To"] = to_address
msg["Subject"] = subject
# 添加邮件正文
body = "This is the body of the email."
msg.attach(MIMEText(body, "plain"))
# 读取Excel文件并添加为附件
filename = "example.xlsx" # Example Excel file
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=filename)
msg.attach(part)
# 连接到SMTP服务器并发送邮件
server = smtplib.SMTP("smtp.gmail.com", 587) # Replace with your SMTP server address and port number
server.starttls()
server.login(from_address, "your_password") # Replace with your email password
text = msg.as_string()
server.sendmail(from_address, to_address, text)
server.quit()
print("Email with Excel attachment sent successfully!")
在上面的例子中,我们首先导入了需要的模块,包括smtplib、email.mime.multipart、email.mime.base和email.encoders。然后,我们设置了发件人、收件人和邮件主题。
接下来,我们创建了一个MIMEMultipart对象实例,该对象表示一个带有附件的邮件。我们设置了邮件的发件人、收件人和主题,并将邮件正文添加到邮件对象中。
然后,我们读取Excel文件并将其添加为附件。我们打开Excel文件并将其设置为被发送的邮件的一部分。我们需要为附件设置适当的MIME类型和标题,然后将其添加到邮件对象中。
最后,我们连接到SMTP服务器,并使用服务器的凭据进行身份验证。然后,我们将邮件对象转换为字符串,并使用SMTP服务器发送邮件。最后,我们关闭与SMTP服务器的连接,并打印一条成功的消息。
当运行这个脚本时,请确保将以下内容替换为您自己的信息:
- your_email@gmail.com:您的发件人邮箱地址
- recipient_email@example.com:您的收件人邮箱地址
- example.xlsx:您要附加的Excel文件的路径和文件名
- smtp.gmail.com:您的SMTP服务器地址
- 587:您的SMTP服务器端口号
- your_password:您的邮箱密码
请注意,如果您使用的是Gmail,请确保启用了SMTP访问,并且您的账户设置中启用了“允许不安全的应用程序访问”。
