簡體   English   中英

python MIME將多個附件附加到多部分郵件

[英]python MIME attaching multiple attachments to a multipart message

我正在嘗試將多個附件附加到email.mime.multipart對象:

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

message = MIMEMultipart('alternative')
message['Subject'] = 'test'

for i in range(10):
    title="<h2>{}</h2>".format(i)
    message.attach(MIMEText(title,"html",_charset="utf-8"))

在這里,我可以檢查有效載荷是否包含10個元素:
message.get_payload()
我可以看到10個元素的列表,這似乎是正確的。

但是,當我使用以下代碼發送電子郵件時:

MAIL_HOST = 'smtp.gmail.com:587'
MAIL_USER = 'xxx@gmail.com'
MAIL_PASSWORD = 'xxx'
MAIL_REPICIENTS = ['xxx@gmail.com']

smtp = SMTP(MAIL_HOST)
smtp.ehlo()
smtp.starttls()
smtp.login(MAIL_USER, MAIL_PASSWORD)
smtp.sendmail(MAIL_USER, MAIL_REPICIENTS, message.as_string())
smtp.close()

電子郵件僅包含列表的最后一個元素。

有人可以幫我嗎?

那是因為您要附加10條不同的消息。 為什么要附加一條消息。 將代碼更改為此:

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

message = MIMEMultipart('alternative')
message['Subject'] = 'test'
html = ''

for i in range(10):
    title="<h2>{}</h2>".format(i)
    html += title

message.attach(MIMEText(html,"html",_charset="utf-8"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM