如何向多个收件人发送邮件?

Jor*_*ins 11 python mime rfc2822 gmail-api

我在使用Gmail API向多个地址发送邮件时遇到问题.我已经成功地只向一个地址发送了一条消息,但是当我在'To'字段中包含多个以逗号分隔的地址时,会收到以下错误:

发生错误:https: //www.googleapis.com/gmail/v1/users/me/messages/send ?alt = json 返回"标题无效">

我正在使用此Gmail API指南中的CreateMessageSendMessage方法:https: //developers.google.com/gmail/api/guides/sending

该指南指出Gmail API需要符合RFC-2822的邮件.我再次使用RFC-2822指南中的一些寻址示例没有太多运气:https: //tools.ietf.org/html/rfc2822#appendix-A

我的印象是'mary @ x.test,jdoe @ example.org,one @ y.test'应该是一个有效的字符串,以传递给'to'参数CreateMessage,但是我收到的错误SendMessage引导我否则相信.

如果您可以重新创建此问题,或者您对我可能犯错误的地方有任何建议,请告诉我.谢谢!

编辑:这是产生错误的实际代码......

def CreateMessage(sender, to, subject, message_text):
    message = MIMEText(message_text)
    message['to'] = to
    message['from'] = sender
    message['subject'] = subject
    return {'raw': base64.urlsafe_b64encode(message.as_string())}

def SendMessage(service, user_id, message):
    try:
        message = (service.users().messages().send(userId=user_id, body=message)
           .execute())
        print 'Message Id: %s' % message['id']
        return message
    except errors.HttpError, error:
        print 'An error occurred: %s' % error

def ComposeEmail():
    # build gmail_service object using oauth credentials...
    to_addr = 'Mary Smith <mary@x.test>, jdoe@example.org, Who? <60one@y.test>'
    from_addr = 'me@address.com'
    message = CreateMessage(from_addr,to_addr,'subject text','message body')
    message = SendMessage(gmail_service,'me',message)
Run Code Online (Sandbox Code Playgroud)

Eri*_*c D 2

在单个标头中发送多个收件人(逗号分隔)时出现“标头无效”的问题,这是一个回归问题,已于 2014 年 8 月 25 日修复。