我在使用 Gmail API 向多个地址发送邮件时遇到了一些问题。我只成功地向一个地址发送了一条消息,但是当我在'To'
字段中包含多个以逗号分隔的地址时出现以下错误:
发生错误:<HttpError 400 when requesting
https://www.googleapis.com/gmail/v1/users/me/messages/send?alt=json 返回“Invalid to header”>
我正在使用此 Gmail API 指南
中的CreateMessage
和方法: https ://developers.google.com/gmail/api/guides/sendingSendMessage
该指南指出,Gmail API 要求邮件符合 RFC-2822。在 RFC-2822 指南中使用其中一些寻址示例,我再次运气不佳: https ://www.rfc-editor.org/rfc/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)