【问题标题】:How to bold specific text using Google Apps Script?如何使用 Google Apps 脚本加粗特定文本?
【发布时间】:2012-02-25 07:58:51
【问题描述】:

我使用 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);

}

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

时间:2012/02/25 11:53

姓名:约翰·戴维斯

电子邮件:John@google.com

网址:http://google.com

联系原因?:只是想和你聊天

消息:很久了。今晚来接我。

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

时间: 2012/02/25 11:53

姓名:约翰·戴维斯

电子邮件: John@google.com

网站:http://google.com

联系原因?只是想和你聊天

消息:很久了。今晚来接我。

如何修改代码来实现这一点?谢谢。

【问题讨论】:

    标签: javascript google-sheets google-apps-script


    【解决方案1】:

    MailApp.sendEmail 可以将 htmlBody 作为高级参数。在这里描述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 脚本。你能编辑我问题中的代码吗?谢谢。 (不过我正在尝试。)
    • 几乎成功了。但是没有换行符!!请检查一次好吗?
    • 非常感谢@arunes。你救了我的一天! (只是想让你知道,我用更多信息编辑了你的答案,这样它就可以很好地参考像我这样的菜鸟。希望你不介意。)再次感谢。
    【解决方案2】:

    一种对我有用的简单方法。

     function inlineImage() { 
       MailApp.sendEmail({
         to: "Your@email.com",
         subject: "Subject",
         htmlBody: '<a href="http://google.com"> <b>Google</b></a> ' ,
    
       });
     }
    

    【讨论】:

      【解决方案3】:

      Abe.S 提供的answer 更简单。我将它与arunes'edited answer 的一部分结合起来。它现在以its_me 在他们对arunes 的评论中要求的方式编写:

      function inlineImage() { 
         MailApp.sendEmail({
           to: "team@example.com",
           subject: e.namedValues["Subject"].toString(),
           htmlBody: "<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/>",
         });
       }
      

      我用我自己的变量代替了我的应用程序的所有“e.namedValues [...”对其进行了测试,并且它有效。我还是个新手,所以我不确定为什么将“msgPlain”替换为“msgHtml”会更好。

      顺便说一句,我试图写这个作为评论,但我没有足够的积分。虽然我猜我写的在技术上是 its_me 最初寻找的答案。 非常感谢Abe.Sarunes 教我这两个脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多