給定此資料框,如何將多個附件發送到一封電子郵件?我每封郵件只能發送一個檔案,但我想在同一封郵件中為一個收件人附加多個檔案。
我的資料框看起來像: 
我發送電子郵件的代碼:
def enviar_mail(from, to, file_name, link, title):
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import smtplib
from email import encoders
from google.colab import files
from email.utils import formataddr
import email.utils
import time
from datetime import date
msg = MIMEMultipart('alternative')
msg['From'] =email.utils.formataddr(( "Mail",from))
msg['To'] = to
msg['Subject'] = 'Subject'
bodytext=f"BODY OF THE EMAIL IN HTML"
body=f"""\
<html>
<body>
<p style="color:black;"> {bodytext}
</p>
</body>
</html>
"""
msg.attach(MIMEText(body, 'html'))
attachment = open(file_name, 'rb')
part = MIMEBase('application', "octet-stream")
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % file_name)
msg.attach(part)
mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.login(from, 'mypassword')
mailserver.send_message(msg, rcpt_options=['NOTIFY=SUCCESS,DELAY,FAILURE'])
mailserver.quit()
uj5u.com熱心網友回復:
您可以將多個附件附加為幾個部分:
attachment1 = open(file_1, 'rb')
part = MIMEBase('application', "octet-stream")
part.set_payload(attachment1.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % file_1)
msg.attach(part)
attachment2 = open(file_2, 'rb')
part = MIMEBase('application', "octet-stream")
part.set_payload(attachment2.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % file_2)
msg.attach(part)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333462.html
上一篇:迭代資料框的行并創建新的資料框
