为什么GMail API会从外发邮件中删除doctype和注释?

时间:2014-07-27 08:53:31

标签: gmail-api

Gmail Message Send API似乎正在从外发邮件中删除doctype和HTML注释。

摄制

  1. 转到https://developers.google.com/gmail/api/v1/reference/users/messages/send
  2. 向下滚动到“试一试!”
  3. 使用OAuth登录
  4. 对于“userId”,请输入: me
  5. 对于“raw”,输入以下节点脚本的结果:
  6. generateMessage.js

    var email = "From: 'me'\r\n" +
      "To: bradvogel@outlook.com\r\n" +
      "Subject: Test Doctype\r\n" +
      "Content-Type: text/html; charset=utf-8\r\n" +
      "\r\n" +
      "<!doctype html>" +
      "<html><body>test <!--[if !mso]>hidden from outlook<!--<![endif]--> </body></html>";
    
    var base64 = new Buffer(email).toString('base64');
    var websafeBase64 = base64.replace(/\//g, '_').replace(/\+/g, '-');
    console.log(websafeBase64);
    

    实际结果

    当我从bradvogel@outlook.com收到的电子邮件中查看原始邮件来源时,它没有doctype或注释:

    To: bradvogel@outlook.com
    Subject: Test Doctype
    Content-Type: multipart/alternative; boundary=089e0102fc52abed0a04ff355038
    
    --089e0102fc52abed0a04ff355038
    Content-Type: text/plain; charset=UTF-8
    
    test
    
    --089e0102fc52abed0a04ff355038
    Content-Type: text/html; charset=UTF-8
    
    <html><body>test  </body></html>
    
    --089e0102fc52abed0a04ff355038--
    

    预期结果

    请注意下面的doctype:

    To: bradvogel@outlook.com
    Subject: Test Doctype
    Content-Type: multipart/alternative; boundary=089e0102fc52abed0a04ff355038
    
    --089e0102fc52abed0a04ff355038
    Content-Type: text/plain; charset=UTF-8
    
    test
    
    --089e0102fc52abed0a04ff355038
    Content-Type: text/html; charset=UTF-8
    
    <!doctype html>
    <html><body>test <!--[if !mso]>hidden from outlook<!--<![endif]--> </body></html>
    
    --089e0102fc52abed0a04ff355038--
    

    注释

    通过SMTP发送相同的消息会保留整个消息。

    需要doctype和注释来格式化Outlook和iOS Mail的电子邮件。该API似乎正在使用我的原始rfc822消息,并使用text和html表示将其转换为multipart / alternative,但重要内容已被删除。

    是否有人知道如何在通过Gmail邮件发送API发送的邮件中保留doctype和评论?

1 个答案:

答案 0 :(得分:3)

这可能只是一个API设计决策。在https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3786&thanks=3786&ts=1427478929

的问题跟踪器中提交