python - 如何向多个收件人发送消息?

标签 python mime gmail-api rfc2822

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

An error occurred: <HttpError 400 when requesting
https://www.googleapis.com/gmail/v1/users/me/messages/send?alt=json returned "Invalid to header">

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

该指南指出 Gmail API 需要符合 RFC-2822 标准的邮件。我再次使用 RFC-2822 指南中的一些寻址示例时运气不佳: https://www.rfc-editor.org/rfc/rfc2822#appendix-A

我的印象是 'mary@x.test, jdoe@example.org, one@y.test' 应该是传递到 CreateMessage 的 'to' 参数中的有效字符串>,但我从 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)

最佳答案

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

关于python - 如何向多个收件人发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437820/

相关文章:

html - 将 mime 类型添加到 HTML 链接

http - 什么规则适用于 MIME 边界?

gmail-api - GMAIL API 在 C# 中发送带附件的电子邮件

android - 在 Firebase 项目中集成 gmail 连接

Python 脚本执行时间在多次并行执行时增加

python - 有没有一种简单的方法可以将 vulture 与 django 一起使用?

python - RedisQueue 与 Flask 应用程序一起运行

jquery - 以 html 形式显示图像,该图像从 ajax 调用作为 MIME 媒体类型返回

go - 将图像附加到通过Golang Gmail API发送的电子邮件

python - 在 Python 3 的一行中打印一个序列