Gmail API を使用して複数のアドレスにメッセージを送信するのに問題があります。1 つのアドレスにのみメッセージを送信できましたが、'To'
フィールドにカンマ区切りの複数のアドレスを含めると、次のエラーが発生します。
エラーが発生しました: <HttpError 400 when requesting
https://www.googleapis.com/gmail/v1/users/me/messages/send?alt=json returned "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)