【问题标题】:how to send email to multiple recipients? [duplicate]如何将电子邮件发送给多个收件人? [复制]
【发布时间】:2013-09-02 16:18:25
【问题描述】:

我正在尝试使用以下代码向两个用户 ID 发送电子邮件,知道出了什么问题吗?如何发送给多个收件人?

def email1(body,subject):
    print "In email1"
    msg = MIMEText("%s" % body)
    msg['Content-Type'] = "text/html; charset=UTF8"
    msg['Subject'] = subject
    s = SMTP('localhost',25)
    s.sendmail('userid@company.com', ['userid1@company.com','userid2@company.com'],msg=msg.as_string())

【问题讨论】:

    标签: python


    【解决方案1】:

    将函数组织成更可重用的形式:

    from smtplib import SMTP
    from email.mime.text import MIMEText
    
    def send_email(body, subj, frm, to, host='localhost', port=25):
        msg = MIMEText(body)
        msg['Content-Type'] = 'text/html; charset=UTF8'
        msg['Subject'] = subj
        msg['From'] = frm
        msg['To'] = ', '.join(to) if type(to) == list else to
        smtp = SMTP(host, port)
        smtp.sendmail(frm, to, msg=msg.as_string())
    

    要使用内置 SMTP 服务器对其进行测试,请使用以下命令在端口 3000 上运行它:

    python -msmtpd -n -c DebuggingServer localhost:3000
    

    并发送一些电子邮件:

    >>> send_email('Message', 'Spam', 'me@foo.com', ['u1@foo.com', 'u2@foo.com'], port=3000)
    >>>
    >>> send_email('Message', 'Spam', 'me@foo.com', 'u1@foo.com', port=3000)
    >>>
    

    你应该看到:

    > python -msmtpd -n -c DebuggingServer localhost:3000
    ---------- MESSAGE FOLLOWS ----------
    Content-Type: text/plain; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Type: text/html; charset=UTF8
    Subject: Spam
    From: me@foo.com
    To: u1@foo.com, u2@foo.com
    X-Peer: 127.0.0.1
    
    Message
    ------------ END MESSAGE ------------
    ---------- MESSAGE FOLLOWS ----------
    Content-Type: text/plain; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Type: text/html; charset=UTF8
    Subject: Spam
    From: me@foo.com
    To: u1@foo.com
    X-Peer: 127.0.0.1
    
    Message
    ------------ END MESSAGE ------------
    

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 2018-11-19
      • 2019-06-17
      • 2016-08-21
      • 2019-03-01
      • 2017-09-26
      • 2015-05-21
      • 1970-01-01
      • 2012-05-18
      相关资源
      最近更新 更多