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

Python email sending keeps adding new attachments

我正在向 Excel sheet 的电子邮件列表中的人发送自定义电子邮件。

我已经使用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()

您没有在每次迭代中创建 new 消息,它 (msg) 似乎是在 [=24= 之前创建的] ] 循环开始。这意味着行:

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

每次通过循环时,都会将 的另一个 副本附加到已存在的消息中。

解决办法是每次都从新鲜的消息开始,比如:

for i in range(len(emails)):
    message = MIMEMultipart()  # Fresh message for each iteration.
    name = names[i] + ","      # Remainder of code as per current.
    # ...