Python 事务失败:MIME节计数超过500

Python 事务失败:MIME节计数超过500,python,amazon-ses,Python,Amazon Ses,我正在使用一个python脚本,使用它向400个用户动态发送HTML电子邮件。该脚本使用从Excel文件读取电子邮件地址 但该脚本在发送时会随机导致260到280个用户崩溃。我当前的解决方法是将Excel文件设置在脚本先前崩溃的位置,然后再次运行它。这是我的代码: import email.utils import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText

我正在使用一个python脚本,使用它向400个用户动态发送HTML电子邮件。该脚本使用从Excel文件读取电子邮件地址

但该脚本在发送时会随机导致260到280个用户崩溃。我当前的解决方法是将Excel文件设置在脚本先前崩溃的位置,然后再次运行它。这是我的代码:

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

msg = MIMEMultipart('alternative')
msg['From'] = sender_email
msg['Subject'] = 'Your email subject'

context = ssl.create_default_context()
server = smtplib.SMTP_SSL(smtp_server, port, context=context)
server.login(smtp_login, password)

for dest_email in email_list:
    message_html = '<html><head><title></title></head><body>Dynamic content here...</body></html>'
    message_plain = 'Content here...'

    part1 = MIMEText(message_plain, 'plain')
    part2 = MIMEText(message_html, 'html')
    
    msg.attach(part1)
    msg.attach(part2)
    
    server.sendmail(sender_email, dest_email, msg.as_string())

server.close()
import email.utils
导入smtplib
从email.mime.multipart导入MIMEMultipart
从email.mime.text导入MIMEText
msg=MIMEMultipart('alternative')
msg['From']=发件人\电子邮件
msg['Subject']=“您的电子邮件主题”
context=ssl.create\u default\u context()
服务器=smtplib.SMTP\u SSL(SMTP\u服务器,端口,上下文=context)
服务器登录(smtp_登录,密码)
对于电子邮件列表中的目的地电子邮件:
message_html='此处的动态内容…'
消息\u plain='此处内容…'
第1部分=MIMEText(消息\u plain,'plain')
part2=MIMEText(消息_html,'html')
附加信息(第1部分)
附加信息(第2部分)
server.sendmail(sender\u email、dest\u email、msg.as\u string())
server.close()
我尝试在执行过程中捕获异常,但我没有得到关于此处错误的详细信息:

  • 异常:(554,b'事务失败:MIME节计数超过 500。”)
  • msg.items():[('Content-Type','multipart/alternative; boundary=“======================2309883816392967535==”),(“MIME-Version”, “1.0”)、(“发件人”、“发件人”_email@address.com",("主题",, “你的主题”)]

我已经四处寻找了一段时间,但没能弄到这个问题。你能帮我弄清楚吗?我做错了什么?每次成功发送电子邮件后,是否需要重置标题?如果您需要更多详细信息,请告诉我。谢谢。

在我看来,只有
server.sendmail()
部分应该在循环中。现在,您似乎正在重新发送一封电子邮件(
msg
),它在每次迭代中都会附加新的部分,这也是错误消息所说的


或者,如果这不起作用:在循环中重新创建整个对象,因此将块从
msg=…
开始移动到内部。

感谢您的反馈@tevemadar。for循环中的所有内容都在那里,因为每个用户都会收到一封个性化的电子邮件。我将在循环中移动msg初始化并让您知道。我将
msg=…
部分移动到循环中,它现在正在工作。非常感谢@tevemadar:)