javascript - 如何使用 Google Apps 脚本加粗特定文本?

标签 javascript google-sheets google-apps-script

我使用 Google 电子表格的内置表单功能在我的网站上构建联系表单。

现在,考虑这段代码:

function sendFormByEmail(e)
{

  var email = "team@example.com";

  subject = e.namedValues["Subject"].toString();

  message = "Time: " + e.namedValues["Timestamp"].toString() + "\n\n"
  + "Name: " + e.namedValues["Name"].toString() + "\n\n"
  + "Email: " + e.namedValues["Email Address"].toString() + "\n\n"
  + "Website: " + e.namedValues["Website"].toString() + "\n\n"
  + "Reason For Contacting?: " + e.namedValues["Reason For Contacting?"].toString() + "\n\n"
  + "Message: " + e.namedValues["Message"].toString() + "\n\n";

  MailApp.sendEmail(email, subject, message);

}

它确保我在有人提交表单后立即收到一封电子邮件,电子邮件的正文包含信息。像这样(示例):

Time: 2012/02/25 11:53

Name: John Davis

Email: John@google.com

Website: http://google.com

Reason For Contacting?: Just wanted to chat with ya

Message: It's been long. Catch me tonight.

那么,现在您应该清楚地了解代码的作用了。问题是,我希望输出看起来像这样(即,将一些文本加粗):

Time: 2012/02/25 11:53

Name: John Davis

Email: John@google.com

Website: http://google.com

Reason For Contacting?: Just wanted to chat with ya

Message: It's been long. Catch me tonight.

如何修改代码以实现此目的?谢谢。

最佳答案

MailApp.sendEmail 可以将htmlBody 作为advancedArgs。在这里描述 http://code.google.com/googleapps/appsscript/class_mailapp.html

你可以像这样发送htmlBody

function sendFormByEmail(e) {
    var email = "team@example.com";
    var subject = e.namedValues["Subject"].toString();
    var msgHtml = "<b>Time</b>: " + e.namedValues["Timestamp"].toString() + "<br/>"
        + "<b>Name:</b> " + e.namedValues["Name"].toString() + "<br/>"
        + "<b>Email:</b> " + e.namedValues["Email Address"].toString() + "<br/>"
        + "<b>Website:</b> " + e.namedValues["Website"].toString() + "<br/>"
        + "<b>Reason For Contacting?:</b> " + e.namedValues["Reason For Contacting?"].toString() + "<br/>"
        + "<b>Message:</b> " + e.namedValues["Message"].toString() + "<br/>";

    var msgPlain = msgHtml.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, ""); // clear html tags and convert br to new lines for plain mail
    MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml });
}

上面的是换行符。使用它按段落分隔它们:

function sendFormByEmail(e) {
    var email = "team@example.com";
    var subject = e.namedValues["Subject"].toString();
    var msgHtml = "<p>" + "<b>Time</b>: " + e.namedValues["Timestamp"].toString() + "</p>"
        + "<p>" + "<b>Name:</b> " + e.namedValues["Name"].toString() + "</p>"
        + "<p>" + "<b>Email:</b> " + e.namedValues["Email Address"].toString() + "</p>"
        + "<p>" + "<b>Website:</b> " + e.namedValues["Website"].toString() + "</p>"
        + "<p>" + "<b>Reason For Contacting?:</b> " + e.namedValues["Reason For Contacting?"].toString() + "</p>"
        + "<p>" + "<b>Message:</b> " + e.namedValues["Message"].toString() + "</p>";

    var msgPlain = msgHtml.replace(/(<([^>]+)>)/ig, ""); // clear html tags for plain mail
    MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml });
}

我没试过,但应该可以。

关于javascript - 如何使用 Google Apps 脚本加粗特定文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442375/

相关文章:

javascript - 仅使用 isRowHiddenByFilter 或 isRowHiddenByUser 获取 Google App Script getRange 的未过滤值

pdf - 错误从 Gmail 获取 pdf 附件作为文本

javascript - 如何向 Google Forms 应用程序添加计时器元素

javascript - 在 THREE.Geometry 对象上设置顶点后,THREE.Shape.Utils.triangulateShape 失败并出现 TypeError

javascript - 重构这个 javascript 代码

javascript - 为什么我的 thead 没有出现在 Internet Explorer 中?

google-apps-script - 如何获取 Google 电子表格时区偏移字符串而不是时区字符串?

javascript - 如何使用 jquery 查询 Google Sheets API 中的特定工作表

javascript - 函数中的 Firebase 查询未按预期返回

javascript - if array != 将数组与单元格值进行比较