【问题标题】:Google REST API - message in an RFC 2822 formatted and base64url encoded stringGoogle REST API - RFC 2822 格式和 base64url 编码字符串中的消息
【发布时间】:2015-05-21 01:51:33
【问题描述】:

我尝试使用 Google REST API - Users.messages: send 的 - try it

有一个必填参数——raw——

RFC 2822 格式和 base64url 编码字符串中的整个电子邮件。在 messages.get 和 drafts.get 响应时返回 提供了 format=RAW 参数。

我检查了 RFC 2822 格式,似乎它应该显示为 sample here ,然后我使用此编码器将其编码为 base64URL 并将其粘贴到 try itraw 字段中,我得到 - Invalid value for ByteString: http://ostermiller.org/calc/encode.html

你能给我一个正确的RFC 2822 format 及其对应的base64URL,它可以在上面的try it 中工作吗?

【问题讨论】:

标签: api rest gmail-api


【解决方案1】:

示例邮件可能如下所示:

From: sender@gmail.com
To: receiver@gmail.com
Subject: Subject Text

The message text goes here

在浏览器中打开开发者工具并对其进行 Base64 编码,并将所有 + 替换为 -,将所有 / 替换为 _,并删除尾随的 = 以使其安全:

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 参数来发送邮件。

【讨论】:

  • 任何人都可以分享任何链接或资源,关于如何解码上述编码数据,返回原始消息字符串。?
  • @RohitNandi 你可以试试atob函数。
【解决方案2】:

您可以在节点 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())

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 1970-01-01
    • 2018-12-03
    • 2014-10-11
    • 1970-01-01
    • 2021-06-11
    • 2013-02-01
    • 2012-11-02
    相关资源
    最近更新 更多