电子邮件中没有excel文件附加

2024-06-02 06:31:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在通过python向某个机器人发送一个excel文件。机器人拒绝显示未找到excel文件的消息。 我的代码是:

 msg_id = Header(email.utils.make_msgid('e_shop').encode('utf-8'), 'UTF-8').encode()
 message = MIMEMultipart()
 message["From"] = sender_email
 message["To"] = receiver_email
 message["Subject"] = subject
 message["References"] = msg_id
 html = """\
     <html>
            <body>
                <p>VEH NO.""" + num +""" REPORT </p>
                <br><br><br><br><br>
                <p>THANKING YOU <p>
            </body>
            </html>
        """

part2 = MIMEText(html,"html")

with open(str(pdf_file_path), "rb") as attachment:
            pdf_part = MIMEBase("application", "octet-stream")
            pdf_part.set_payload(attachment.read())
        encoders.encode_base64(pdf_part)

        pdf_part.add_header(
            "Content-Disposition",
            'attachment; filename= {}'.format(file_name+'.pdf'),
        )

        with open(str(excel_file_path), "rb") as attachment:
            excel_part = MIMEBase("application", "octet-stream")
            excel_part.set_payload(attachment.read())
        encoders.encode_base64(excel_part)
        excel_part.add_header(
            "Content-Disposition",
            'attachment; filename= {}'.format(file_name+'.xlsx'),
        )
message.attach(pdf_part)
message.attach(excel_part)
message.attach(part2)

text = message.as_string()
context = ssl.create_default_context()

with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server:
    server.login(sender_email, pwd)
    res = server.sendmail(sender_email, receiver_email, text)

以这种方式,它拒绝我的电子邮件,但 在手动发送带有附件的电子邮件期间,bot没有拒绝该电子邮件。 因此,在检查我发送的邮件后,我注意到在内容配置方面,这两种邮件的类型略有不同

1.使用python脚本发送的邮件的内容处理

   Content-Disposition:  attachment; filename=file_name.pdf

2.发送的手动邮件的内容处理

   Content-Disposition:  attachment; filename="file_name.pdf"

在这个答案中,他们在引号add excel file attachment when sending python email中添加了文件名