Google REST API - RFC 2822 格式和 base64url 编码字符串中的消息
Google REST API - message in an RFC 2822 formatted and base64url encoded string
我尝试使用 - try it of Google REST API - Users.messages: send .
有一个必需的参数 - raw
-
The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when
the format=RAW parameter is supplied.
我检查了 RFC 2822 格式,它似乎应该显示为 sample here , then I encoded it the base64URL with this encoder and paste it the raw
field of the try it,我得到 - Invalid value for ByteString: http://ostermiller.org/calc/encode.html
.
你能给我一个正确的 RFC 2822 format
及其对应的 base64URL
吗?
示例邮件可能如下所示:
From: sender@gmail.com
To: receiver@gmail.com
Subject: Subject Text
The message text goes here
在浏览器中打开开发者工具,进行Base64编码,将所有+
替换为-
,将所有/
替换为_
,并删除尾随=
使其 URL-安全:
btoa(
"From: sender@gmail.com\r\n" +
"To: receiver@gmail.com\r\n" +
"Subject: Subject Text\r\n\r\n" +
"The message text goes here"
).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
这将为您提供以下数据:
RnJvbTogc2VuZGVyQGdtYWlsLmNvbQ0KVG86IHJlY2VpdmVyQGdtYWlsLmNvbQ0KU3ViamVjdDogU3ViamVjdCBUZXh0DQoNClRoZSBtZXNzYWdlIHRleHQgZ29lcyBoZXJl
使用上面的字符串作为 API Explorer 中的 raw
参数来发送邮件。
您可以在节点 REPL 或在线节点编译器中使用它并获得 json
function createMessageJson(){
const messages = [
'From: NAME <foo@email.com>',
'To: Name <foobar@email.com>',
'Content-Type: text/html; charset=utf-8',
'MIME-Version: 1.0',
'Subject: Re: SUBJECT',
'',
'BODY_TEXT',
'',
];
function encodedMessage (){
return Buffer.from(messages.join('\n'))
.toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
return JSON.stringify({
raw: encodedMessage()
});
}
console.log(createMessageJson())
我尝试使用 - try it of Google REST API - Users.messages: send .
有一个必需的参数 - raw
-
The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
我检查了 RFC 2822 格式,它似乎应该显示为 sample here , then I encoded it the base64URL with this encoder and paste it the raw
field of the try it,我得到 - Invalid value for ByteString: http://ostermiller.org/calc/encode.html
.
你能给我一个正确的 RFC 2822 format
及其对应的 base64URL
吗?
示例邮件可能如下所示:
From: sender@gmail.com
To: receiver@gmail.com
Subject: Subject Text
The message text goes here
在浏览器中打开开发者工具,进行Base64编码,将所有+
替换为-
,将所有/
替换为_
,并删除尾随=
使其 URL-安全:
btoa(
"From: sender@gmail.com\r\n" +
"To: receiver@gmail.com\r\n" +
"Subject: Subject Text\r\n\r\n" +
"The message text goes here"
).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
这将为您提供以下数据:
RnJvbTogc2VuZGVyQGdtYWlsLmNvbQ0KVG86IHJlY2VpdmVyQGdtYWlsLmNvbQ0KU3ViamVjdDogU3ViamVjdCBUZXh0DQoNClRoZSBtZXNzYWdlIHRleHQgZ29lcyBoZXJl
使用上面的字符串作为 API Explorer 中的 raw
参数来发送邮件。
您可以在节点 REPL 或在线节点编译器中使用它并获得 json
function createMessageJson(){
const messages = [
'From: NAME <foo@email.com>',
'To: Name <foobar@email.com>',
'Content-Type: text/html; charset=utf-8',
'MIME-Version: 1.0',
'Subject: Re: SUBJECT',
'',
'BODY_TEXT',
'',
];
function encodedMessage (){
return Buffer.from(messages.join('\n'))
.toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
return JSON.stringify({
raw: encodedMessage()
});
}
console.log(createMessageJson())