Как выделить определенный текст с помощью Google Apps Script? - PullRequest
4 голосов
/ 25 февраля 2012

Я использую встроенную функциональность форм Google Spreadsheets для создания контактных форм на моем веб-сайте.

Теперь рассмотрим этот код:

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

Причина обращения?: Просто хотел пообщаться с тобой

Сообщение: Это было давно.Поймай меня сегодня вечером.

Как мне изменить код, чтобы добиться этого?Спасибо.

Ответы [ 2 ]

11 голосов
/ 25 февраля 2012

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

Я не пробовал, но это должно работать.

0 голосов
/ 27 ноября 2017

Простой способ, который работал для меня.

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

   });
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...