4

Gmail Message Send APIは、送信メッセージから doctype と HTML コメントを取り除いているようです。

再現

  1. https://developers.google.com/gmail/api/v1/reference/users/messages/sendに移動します
  2. 「Try it!」まで下にスクロールします。
  3. OAuthでログイン
  4. "userId" に次のように入力します: me
  5. 「raw」には、次のノード スクリプトの結果を入力します。

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 メールの電子メールをフォーマットするために必要です。API は生の rfc822 メッセージを取得し、それをマルチパート/オルタナティブにテキストと HTML 表現で変換しているように見えますが、重要なコンテンツは取り除かれています。

Gmail Message Send api を介して送信されたメッセージで doctype とコメントを保持する方法を知っている人はいますか?

4

1 に答える 1

4

これは、API の設計上の決定に過ぎない可能性があります。問題トラッカーにhttps://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3786&thanks=3786&ts=1427478929として登録

于 2015-03-27T17:56:08.193 に答える