python邮件发送给多人时,只有第一个人能收到的问题

问题:在python3.5中使用sendmail进行邮件发送,mailInfo["to"]为逗号分隔的str类型,结果只有第一个邮件地址能收到邮件。
解决方法:经过多次测试发现MIMEText()["to"]的数据类型与sendmail(from_addrs,to_addrs,...)的to_addrs不同;前者为str类型,多个地址使用逗号分隔,后者为list类型。
解决示例如下:
...
mailInfo = {
        "from": "[email protected]",
        "to": "[email protected],[email protected],[email protected]",
        "hostname": "smtp.xxx.com",
        "username": "[email protected]",
        "password": "xxxxx",
        "mailsubject": "主题",
        "mailtext": "正文内容",
        "mailencoding": "utf-8"
    }
def sendsmtp(mailInfo):
    smtp = SMTP_SSL(mailInfo["hostname"])
    smtp.set_debuglevel(1)
    smtp.ehlo(mailInfo["hostname"])
    smtp.login(mailInfo["username"], mailInfo["password"])
    msg = MIMEText(mailInfo["mailtext"], "plain", mailInfo["mailencoding"])
    msg["Subject"] = Header(mailInfo["mailsubject"], mailInfo["mailencoding"])
    msg["from"] = mailInfo["from"]
    msg["to"] = mailInfo["to"]
    smtp.sendmail(mailInfo["from"], mailInfo["to"].split(','), msg.as_string())
    smtp.quit()
 
 

你可能感兴趣的:(python邮件发送给多人时,只有第一个人能收到的问题)