如何使用 Google Apps Script 加粗特定文本? [英] How to bold specific text using Google Apps Script?

查看:30
本文介绍了如何使用 Google Apps Script 加粗特定文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

现在,考虑这段代码:

函数 sendFormByEmail(e){var email = "team@example.com";subject = e.namedValues["Subject"].toString();message = "时间:" + e.namedValues["Timestamp"].toString() + "

"+ "名称:" + e.namedValues["Name"].toString() + "

"+ "电子邮件:" + e.namedValues["电子邮件地址"].toString() + "

"+ "网站:" + e.namedValues["Website"].toString() + "

"+ "联系原因?:" + e.namedValues["联系原因?"].toString() + "

"+ "消息:" + e.namedValues["Message"].toString() + "

";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

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

消息:已经很久了.今晚来接我.

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

解决方案

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>时间</b>:" + e.namedValues["Timestamp"].toString() + "<br/>"+ "<b>名称:</b>" + e.namedValues["Name"].toString() + "<br/>"+ "<b>Email:</b>" + e.namedValues["Email Address"].toString() + "<br/>"+ "<b>网站:</b>" + e.namedValues["Website"].toString() + "<br/>"+ "<b>联系原因?:</b>" + e.namedValues["联系原因?"].toString() + "<br/>"+ "<b>Message:</b>" + e.namedValues["Message"].toString() + "<br/>";var msgPlain = msgHtml.replace(/<br/>/gi, '
').replace(/(<([^>]+)>)/ig, "");//清除 html 标签并将 br 转换为普通邮件的新行MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml });}

上面的用于换行.用它来按段落分隔它们:

function sendFormByEmail(e) {var email = "team@example.com";var subject = e.namedValues["Subject"].toString();var msgHtml = "

"+ "<b>时间</b>:" + e.namedValues["Timestamp"].toString() + "</p>"+ "<p>"+ "<b>名称:</b>" + e.namedValues["Name"].toString() + "</p>"+ "<p>"+ "<b>Email:</b>" + e.namedValues["Email Address"].toString() + "</p>"+ "<p>"+ "<b>网站:</b>" + e.namedValues["Website"].toString() + "</p>"+ "<p>"+ "<b>联系原因?:</b>" + e.namedValues["联系原因?"].toString() + "</p>"+ "<p>"+ "<b>Message:</b>" + e.namedValues["Message"].toString() + "</p>";var msgPlain = msgHtml.replace(/(<([^>]+)>)/ig, "");//清除普通邮件的 html 标签MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml });}

我没试过,但应该可以.

I use Google Spreadsheets' built-in form functionality to build contact forms on my website.

Now, consider this code:

function sendFormByEmail(e)
{

  var email = "team@example.com";

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

  message = "Time: " + e.namedValues["Timestamp"].toString() + "

"
  + "Name: " + e.namedValues["Name"].toString() + "

"
  + "Email: " + e.namedValues["Email Address"].toString() + "

"
  + "Website: " + e.namedValues["Website"].toString() + "

"
  + "Reason For Contacting?: " + e.namedValues["Reason For Contacting?"].toString() + "

"
  + "Message: " + e.namedValues["Message"].toString() + "

";

  MailApp.sendEmail(email, subject, message);

}

It makes sure that I receive an email as soon as someone submits the form, the email's body has info. like this (example):

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.

So, now you should have a clear idea as to what the code does. The thing is, I want the output to look like this instead (i.e., bold some text):

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.

How do I modify the code to achieve this? Thanks.

解决方案

MailApp.sendEmail can take htmlBody as advancedArgs. Descripted in here http://code.google.com/googleapps/appsscript/class_mailapp.html

You can send htmlBody like

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, '
').replace(/(<([^>]+)>)/ig, ""); // clear html tags and convert br to new lines for plain mail
    MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml });
}

The above one's for linebreaks. Use this to separate them by paragraphs:

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 });
}

I didnt try but it should work.

这篇关于如何使用 Google Apps Script 加粗特定文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆