2017-02-10 185 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格式的郵件研究說,使用嵌套表和內嵌樣式。爲什麼我的寬度樣式不起作用?

+0

嘗試刪除'%'符號。 'width ='400''應該可以做到。 –

回答

2

一番搜索,試驗和測試後,我終於想通了,我需要的內容傳輸編碼值設置爲base64:

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

相關問題