dru*_*u37 2 html javascript email gmail-api
以下 javascript 代码通过 Gmail API 成功发送电子邮件。然而,表格格式,特别是表格和列(单元格)宽度设置,似乎被忽略了。
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();
}
Run Code Online (Sandbox Code Playgroud)
电子邮件消息如下所示:
This is a row 999999
So is this 9999
Run Code Online (Sandbox Code Playgroud)
我研究过的关于发送 HTML 格式的电子邮件消息的所有内容都说要使用嵌套表和内联样式。为什么我的宽度样式不起作用?
经过多次搜索、实验和测试,我终于发现我需要将 content-transfer-encoding 值设置为 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>";
Run Code Online (Sandbox Code Playgroud)
希望这可以节省其他有类似问题的人一段时间。
| 归档时间: |
|
| 查看次数: |
3253 次 |
| 最近记录: |