Python电子邮件发送不断添加新的附件



我正在给我从Excel表格中取出的电子邮件列表中的人发送定制电子邮件。

我使用MIMEMultipart发送邮件和附件,第一人称正确收到邮件。

第二个人正在收到第一个人的邮件以及他们自己的邮件。第三个人同时得到了前两个人的信息。

以此类推,每次向邮件中添加另一条消息。如何在python中发送单个邮件后重置MIMEMultipart?我的代码如下:

for i in range(len(emails)):
name = names[i] + ","
email = emails[i] + "@nmamit.in"
TEXT = "my message" + name
msg['Subject'] = subjet_txt
msg['From'] = your_email
msg['To'] = email
msg.attach(MIMEText(TEXT, 'plain'))
text = msg.as_string()
server.sendmail(your_email, email, text)
server.quit()

您没有在每次迭代中创建消息,它(msg)似乎在循环开始之前已经创建了。这意味着这一行:

msg.attach(MIMEText(TEXT, 'plain'))

将在每次循环中附加另一个TEXT副本到已经存在的消息。

解决方案是每次都以消息开始,例如:
for i in range(len(emails)):
message = MIMEMultipart()  # Fresh message for each iteration.
name = names[i] + ","      # Remainder of code as per current.
# ...

最新更新