我想通過電子郵件發送兩個檔案附件,但我不知道該怎么做,有什么幫助嗎?
def sendmail():
sender_email = "[email protected]"
receiver_email = "[email protected]"
message = MIMEMultipart()
message["From"] = sender_email
message['To'] = receiver_email
message['Subject'] = "Deine Monatseinteilung"
file = (f'{myPath}/File-2-2022.ics')
attachment = open(file,'rb')
obj = MIMEBase('application','octet-stream')
obj.set_payload((attachment).read())
encoders.encode_base64(obj)
obj.add_header('Content-Disposition',"attachment; filename= " file)
message.attach(obj)
my_message = message.as_string()
email_session = smtplib.SMTP('smtp.gmail.com',587)
email_session.starttls()
email_session.login(sender_email,'xxxxxx')
email_session.sendmail(sender_email,receiver_email,my_message)
email_session.quit()
print(f"Deine monatseinteilung wurde an deine E-Mail-Adresse gesendet ({receiver_email})")
sendmail()
uj5u.com熱心網友回復:
嘗試使用下面的代碼片段:
import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate
def _send_email(send_from, send_to, subject, text, files=None):
assert isinstance(send_to, list)
msg = MIMEMultipart()
msg['From'] = send_from
msg['To'] = COMMASPACE.join(send_to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach(MIMEText(text))
for f in files or []:
with open(f, "rb") as fil:
part = MIMEApplication(
fil.read(),
Name=basename(f)
)
part['Content-Disposition'] = 'attachment; filename="%s"' % basename(f)
msg.attach(part)
smtp = smtplib.SMTP(SERVER, PORT)
smtp.login(USER, PASS)
smtp.sendmail(send_from, send_to, msg.as_string())
smtp.close()
然后你可以像這樣呼叫函式:
send_from = "[email protected]"
send_to = ['[email protected]', '[email protected]']
subject = "My Subject"
text = "This is a email."
files = ["pathtofile1", "pathtofile2"]
_send_email(send_from, send_to, subject, text, files)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442671.html
上一篇:Chrome開發工具元素選項卡停止作業(無法右鍵單擊任何DOM節點并將滑鼠懸停在Dom節點上不會突出顯示任何內容)
