【问题标题】:Python Mail with Mandrill To Multiple email id带有 Mandrill 的 Python 邮件到多个电子邮件 ID
【发布时间】:2014-03-21 13:02:38
【问题描述】:

使用 Mandrill 向多个 emailId 发送电子邮件,但它只发送到列表中第一个要休息的 id,它不会发送。我想使用 mandrill API 向多个用户发送邮件

here is my code :

class mandrillClass:
    def mandrillMail(self,param):

        import smtplib
        from email.mime.multipart import MIMEMultipart
        from email.mime.text import MIMEText
        msg = MIMEMultipart('alternative')
        msg['Subject'] = param['subject']
        msg['From']    = param['from']
        msg['To']      = param['to']
        html = param['message']
        print html
        text = 'dsdsdsdds'



        part1 = MIMEText(text, 'plain')
        part2 = MIMEText(html, 'html')
        username = 'xyz@gmail.com'
        password = 'uiyhiuyuiyhihuohohio'

        msg.attach(part1)
        msg.attach(part2)

        s = smtplib.SMTP('smtp.mandrillapp.com', 587)

        s.login(username, password)
        s.sendmail(msg['From'], msg['To'], msg.as_string())

        s.quit() 

我在这里调用函数

from API_Program import mandrillClass 
msgDic = {}
msgDic['subject'] = "testing"
msgDic['from'] = "xyz@gmail.com"
#msgDic['to'] = 'abc@gmail.com','example@gmail.com'
COMMASPACE = ', '
family =  ['abc@gmail.com','example@gmail.com']
msgDic['to'] = COMMASPACE.join(family)

msgDic['message']  = "<div>soddjags</div>"
mailObj = mandrillClass()                   
mailObj.mandrillMail(msgDic)

【问题讨论】:

  • 你的问题到底是什么?
  • 当我们点击 mandrill api 获取单个电子邮件 ID 然后它发送到该电子邮件地址但我们想通过在列表中传递所有电子邮件 ID 将电子邮件发送到多个电子邮件地址。当我尝试它时然后邮件仅发送到列表中的第一个电子邮件 ID
  • 你在用他们的python api吗?
  • 是的,从 email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText msg = MIMEMultipart('alternative') 和用户名密码也给出

标签: python mandrill


【解决方案1】:

由于您使用的是 smtplib,因此您需要查看该 SMTP 库的文档,了解如何指定多个收件人。 SMTP 库在处理多个收件人的方式上有所不同。看起来这个 StackOverflow 帖子包含有关使用 smtplib 传递多个收件人的信息:How to send email to multiple recipients using python smtplib?

你需要一个列表而不仅仅是字符串,所以像这样:

msgDic['to'] = ['abc@gmail.com','example@gmail.com']

因此,您的家庭变量已正确声明,您不需要对此做任何事情。

【讨论】:

    【解决方案2】:

    试试:

    msgDic['to'] = [{"email":fam} for fam in family]
    

    docs 看来,他们期望这种结构:

    msgDic['to'] = [ {"email":"a@b.c", "name":"a.b", "type":"to"},
                     {"email":"x@y.z", "name":"x.z", "type":"cc"}
                   ]
    

    您可以省略nametype

    【讨论】:

    • 这是真的,如果您使用 API 客户端发送。但是,看起来他使用的是 SMTP 库而不是 Python 的官方 API 包装器,因此该结构可能无法正常工作。
    猜你喜欢
    • 2014-12-28
    • 2014-01-28
    • 2012-10-21
    • 2014-06-14
    • 2014-09-01
    • 1970-01-01
    • 2016-02-28
    • 2018-03-09
    • 2021-12-30
    相关资源
    最近更新 更多