【问题标题】:Sending an email in HTML and plain with a Gmail Apps Script使用 Gmail Apps 脚本以 HTML 格式和普通格式发送电子邮件
【发布时间】:2018-02-03 15:28:16
【问题描述】:

我正在使用 Google Apps 脚本 (http://script.google.com) 为 gmail 编写一个自动回复机器人。每次用GmailThreadReply回复消息:

var htmlbody = "Hello<br>This is a <b>test</b>.<br>Bye.";
var body = "Hello,\nThis is a test.\nBye.";

thread.reply(body, {htmlBody: htmlbody, from: "Myself <hello@example.com>"});

我需要用纯文本bodyhtmlbody 中的HTML 编写消息。

有没有办法只用 HTML 编写电子邮件(避免将每封电子邮件的内容写两次,纯 HTML 和 HTML!),reply() 自动发送电子邮件在 HTML 和纯文本版本中?


我试过了

var body = htmlbody.replace(/<br>/g,'\n').replace(/<b>/g,''); 
// we should also replace </b> by '', etc.

但这有点小题大做。有更好的版本吗?

【问题讨论】:

    标签: javascript html google-apps-script gmail gmail-api


    【解决方案1】:

    Google Scripts 无法自动生成纯文本部分,但您编写了一个简单的基于正则表达式的替换,该替换从纯文本的 HTML 中删除了所有标签。

    var body = htmlBody.replace(/<.+?>/g, "");
    thread.reply(body, {htmlBody: htmlbody, from: "Myself <hello@example.com>"});
    

    此外,如果您将正文设置为空白,大多数现代电子邮件客户端仍然能够呈现图像。

    【讨论】:

    • 谢谢,这证实了我们必须手动完成,reply 无法为我们完成。也许htmlbody.replace(/&lt;br&gt;/g,'\n').replace(/&lt;.+?&gt;/g, ""); 也有用?
    猜你喜欢
    • 2017-06-28
    • 1970-01-01
    • 2010-11-26
    • 2014-06-22
    • 2020-12-15
    • 1970-01-01
    相关资源
    最近更新 更多