Google OAuth 2.0 Playgroundを使用してメールを送信しようとしています。認証は正常に機能しています。これが私が送信しようとしている非常に単純なメッセージです(スパムを防ぐために電子メールアドレスを変更しました):
to: 'Michael To' <FakeMichael@gmail.com> from: 'John From' <JohnF@mydomain.com> subject: 'Test Message' htmlBody: '<b>HI!</b><br>Test Message'
これをVBAを使用してBase64 RFC 822に変換すると、これが得られます(他のStackOverflowの投稿ごとに「+」と「-」を交換しようとしましたが、役に立ちませんでした):
dG86ICdNaWNoYWVsIFRvJyA8RmFrZU1pY2hhZWxAZ21haWwuY29tPg1mcm9tOiAnSm9obiBGcm9tJyA8Sm9obkZAbXlkb21haW4uY29tPg1zdWJqZWN0OiAnVGVzdCBNZXNzYWdlJw1odG1sQm9keTogJzxiPkhJITwvYj48YnI-VGVzdCBNZXNzYWdlJw==
Playground では、私のメソッドは POST で、2 つのヘッダーを追加しました。
raw: and the Base64 string above (no quotes or anything)
Content-Type: message/rfc822 <I added this because I kept getting an a different error. Putting this prevetned that error>
リクエスト URI (https を削除したため、2 つ以上のリンクを投稿できません)://www.googleapis.com/upload/gmail/v1/users/me/messages/send
「リクエストを送信」をクリックすると、OK の応答が返されます。
ここに私の要求があります:
POST /upload/gmail/v1/users/me/messages/send HTTP/1.1
Host: www.googleapis.com
Raw: <string above>
Content-length: 0
Content-type: message/rfc822
Authorization: Bearer <my token>
応答:
HTTP/1.1 200 OK
Alternate-protocol: 443:quic,p=1
Content-length: 91
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Vary: Origin, X-Origin
Server: UploadServer ("Built on Jun 6 2015 11:14:45 (1433614485)")
Etag: "YAnoF_dHYOakPARISZQhTvRsqto/nwevNUuzaUU_lB19L-UhrwaaUSM"
Pragma: no-cache
Cache-control: no-cache, no-store, max-age=0, must-revalidate
Date: Wed, 10 Jun 2015 15:59:36 GMT
Content-type: application/json; charset=UTF-8
{
"labelIds": [
"SENT"
],
"id": "14dde32bc92c9XYZ",
"threadId": "14dde32bc92c9XYZ"
}
ただし、Gmail の送信済みメール フォルダーに移動すると、メッセージはそこにありますが、To、Subject、または Body is フィールドには何もありません。スクリーンショットを参照してください。
これは単純なことだと想像する必要がありますが、Google Gmail API、MIME、Raw Base64 を扱うのは初めてなので、うまくいきません。
ご協力いただきありがとうございます。
--- Tholle の応答ごとに編集 ---
それは役立ちます!生のbase64文字列ヘッダーを削除して、次のように置きました:
From: 'John From' <JohnF@mydomain.com>
Subject: Test Message
To: 'Michael To' <FakeMichael@gmail.com>
Test Message
「要求本文を入力してください」に入力して送信します。これは素晴らしいことです。
フォローアップの 3 つの質問:
- セキュリティ上のリスクや制限はありますか (最大長? 2 MB の制限があるかもしれませんが、それは大量のテキストになります)。ヘッダーの生の Base64 文字列とは対照的に、この方法で (本文で) 送信しますか?
- (これについては後で詳しく説明します) メッセージ本文を HTML にするにはどうすればよいですか? 「Content-Type: message/rfc822」のコンテンツ タイプが原因で HTML を送信できませんか? HTML を送信することはこのアプリケーションの要件であり、2 つのコンテンツ タイプを持つことはできません。使用できる HTML パラメータはありますか、それともうまくいきませんか?
- (これについても宿題をします) 電子メールに PDF ファイルなどの添付ファイルを含めるにはどうすればよいですか?
再度、感謝します!