【问题标题】:Python email sending keeps adding new attachmentsPython电子邮件发送不断添加新附件
【发布时间】:2021-10-22 23:07:49
【问题描述】:

我正在从 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()

【问题讨论】:

    标签: python mime-message


    【解决方案1】:

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

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

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

    解决方法是每次都以fresh消息开头,比如:

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

    【讨论】:

    • 谢谢你解决了!!
    猜你喜欢
    • 2014-10-10
    • 2015-06-19
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 2013-03-18
    • 2016-11-30
    相关资源
    最近更新 更多