事务失败:MIME 部分计数超过 500
Transaction failed: MIME section count exceeds 500
我正在使用 python 脚本向使用 Amazon Simple Email Service. The script reads the emails addresses from an Excel file with openpyxl.
的 400 位用户动态发送 HTML 电子邮件
但是脚本在发送时随机崩溃了大约 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()
我尝试在执行过程中捕获异常,但我没有得到关于这里错误的详细信息:
- Exception: (554, b'事务失败: MIME 节数超过
500.')
- msg.items(): [('Content-Type', 'multipart/alternative;
boundary="===============2309883816392967535=="'), ('MIME-Version',
'1.0'), ('From', 'Sender sender_email@address.com'), ('Subject',
“你的主题”)]
我已经四处寻找了一段时间,但无法解决这个问题。你能帮我解决这个问题吗?我究竟做错了什么?每次成功发送电子邮件后,我是否需要重置 header?如果您需要更多详细信息,请告诉我。谢谢
从我的头顶我会说只有 server.sendmail()
部分应该在循环内。现在你似乎是 re-sending 一个单一的 e-mail (msg
),它在每次迭代中都会附加新的部分,这也是错误消息所说的。
或者,如果这不起作用:re-create 循环中的整个对象,因此将以 msg = ...
开头的块移到里面。
我正在使用 python 脚本向使用 Amazon Simple Email Service. The script reads the emails addresses from an Excel file with openpyxl.
的 400 位用户动态发送 HTML 电子邮件但是脚本在发送时随机崩溃了大约 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()
我尝试在执行过程中捕获异常,但我没有得到关于这里错误的详细信息:
- Exception: (554, b'事务失败: MIME 节数超过 500.')
- msg.items(): [('Content-Type', 'multipart/alternative; boundary="===============2309883816392967535=="'), ('MIME-Version', '1.0'), ('From', 'Sender sender_email@address.com'), ('Subject', “你的主题”)]
我已经四处寻找了一段时间,但无法解决这个问题。你能帮我解决这个问题吗?我究竟做错了什么?每次成功发送电子邮件后,我是否需要重置 header?如果您需要更多详细信息,请告诉我。谢谢
从我的头顶我会说只有 server.sendmail()
部分应该在循环内。现在你似乎是 re-sending 一个单一的 e-mail (msg
),它在每次迭代中都会附加新的部分,这也是错误消息所说的。
或者,如果这不起作用:re-create 循环中的整个对象,因此将以 msg = ...
开头的块移到里面。