2017-02-10 12 views
0

次のjavascriptコードは、Gmail APIを介して正常にメールを送信します。ただし、表の書式、特に表と列(セル)の幅の設定は無視されているようです。次のようにGmail APIとJavascriptを使用してHTML形式のメールを送信する

function sendMail(email) { 
    var to = email; 
    var subject = "HTML formatted email"; 
    var content = ""; 
    content += "<html><body>"; 
    content += "<table width='100%'><tr><td>"; // Outer table 
    content += "<table width='60%'>"; // Nested table 
    content += "<tr><td width='70%'>This is a row</td><td width='30%'>999999</td></tr>"; 
    content += "<tr><td width='70%'>So is this</td><td width='30%'>9999</td></tr>"; 
    content += "</table>"; 
    content += "</td></tr></table>"; 
    content += "</body></html>"; 
    var email = 
      "From: 'me'\r\n" + 
      "To: " + to + "\r\n" + 
      "Subject: " + subject + "\r\n" + 
      "Content-Type: text/html; charset=utf-8\r\n" + 
      "Content-Transfer-Encoding: quoted-printable\r\n\r\n" + 
      content; 
    var base64EncodedEmail = window.btoa(email).replace(/\+/g, "-").replace(/\//g, "_"); 
    var request = gapi.client.gmail.users.messages.send({ 
     "userId": "me", 
     "resource": { 
      "raw": base64EncodedEmail 
     } 
    }); 
    request.execute(); 
} 

電子メールメッセージが見えます:

This is a row 999999 
So is this 9999 

私はHTML形式の電子メールメッセージを送信するに調査してきたすべてが、ネストされたテーブルとインラインスタイルを使用することを言います。私の幅のスタイリングが機能しないのはなぜですか?私は最終的に私はBASE64にContent-Transfer-Encoding値を設定するために必要なことを考え出した多くの検索、実験とテストの後

+0

「%」記号を削除してみてください。 'width = '400''はトリックを行うべきです。 –

答えて

2

var email = 
     "From: 'me'\r\n" + 
     "To: " + to + "\r\n" + 
     "Subject: " + subject + "\r\n" + 
     "Content-Type: text/html; charset='UTF-8'\r\n" + 
     "Content-Transfer-Encoding: base64\r\n\r\n" + 
     "<html><body>" + 
     content + 
     "</body></html>"; 

希望これは、同様の質問いくつかの時間で他を節約できます。

+0

コンテンツ転送エンコーディングの変更が私のために働いていました。 – PHPCoder

関連する問題