我正在使用Google OAuth 2.0 Playground并尝试发送电子邮件。autentication 工作正常。这是我要发送的非常简单的消息(更改了电子邮件地址以防止垃圾邮件):
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==
在操场上,我的方法是 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 发送邮件文件夹时,邮件在那里,但收件人、主题或正文字段中没有任何内容:请参阅屏幕截图
我不得不想象这很简单,但由于我是 Google Gmail API、MIME 和处理原始 Base64 东西的新手,所以我运气不佳。
提前感谢您的任何帮助。
--- 编辑每 THOLLE 的回应 ---
这有帮助!我删除了原始 base64 字符串标题并输入:
From: 'John From' <JohnF@mydomain.com>
Subject: Test Message
To: 'Michael To' <FakeMichael@gmail.com>
Test Message
进入“输入请求正文”并发送,这很棒!
三个后续问题:
- 是否有任何安全风险或限制(最大长度?我看到可能有 2mb 的限制,但这将是很多文本。)以这种方式(在正文中)发送它,而不是在标头中使用原始 Base64 字符串?
- (我将对此进行深入研究)如何制作邮件正文 HTML?“Content-Type:message/rfc822”的内容类型是否会阻止我发送 HTML?发送 HTML 是此应用程序的一项要求,我不能有两种内容类型,是否有可以使用的 HTML 参数,或者我不走运?
- (我也会在这方面做功课)如何在电子邮件中包含附件,比如 PDF 文件?
再次感谢!