使用Python smtplib发送到通讯组列表

时间:2018-07-11 14:27:43

标签: python smtplib

我正在使用SMTPlib自动发送电子邮件:

emailto = ['distro@email.com','me@email.com']
emailfrom = "me@email.com"

msg = MIMEMultipart('related')
msg['Subject'] = currentdate + " Subject"
msg['From'] = emailfrom
msg['To'] = ", ".join(emailto)  

msgAlternative = MIMEMultipart('alternative')
msg.attach(msgAlternative)
msgAlternative.attach(msgText)

smtpObj = smtplib.SMTP('mail.email.com')
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.sendmail(emailfrom, emailto, msg.as_string())
smtpObj.quit()

使用此代码时,我也会收到电子邮件,在“收件人:”行中也有distro@email.com,但在distro@email.com中没有人收到它。我以前已经毫无问题地发送到通讯组列表,但是这个特定的行不通。这是一个很大的列表(约100个收件人)

1 个答案:

答案 0 :(得分:0)

错误可能会被忽略,因为发送到多个地址时没有检查.sendmail()的结果。

如果此方法成功将电子邮件发送给至少一个收件人,则不会引发异常。

文档的重要部分是:

  

如果至少接受邮件,则此方法将正常返回   一位收件人。否则会引发异常。   如果此方法未引发异常,则返回字典,   每个被拒绝的收件人都有一个条目。每个条目   包含SMTP错误代码和随附错误的元组   服务器发送的消息。

这样的事情应该有助于发现问题:

errors = smtpObj.sendmail(emailfrom, emailto, msg.as_string())
for recipient, (code, errmsg) in errors.items():
    # ... print or log the error ...
相关问题