полужирное конкретное слово в теле письма при отправке его через скрипт Google

avatar
Vector JX
8 апреля 2018 в 05:18
1147
1
1

Я использую электронную таблицу Google, которая выглядит так:

   A             B                    C             D
1 Name        e-mail              Identifer       Status
2 Alex       ax@gmail.com         ERT ER          A
3 Micke      miike477@gmail.com   Ejyu er w       
4 John       john7788@tri.com     Arb Ed          C

У меня есть раскрывающийся список в столбце D (скажем, A,B и C, например), теперь я хочу, чтобы всякий раз, когда значение изменяется (изначально столбец D был бы пустым) в столбце D против определенного Name, чем автоматический триггер электронной почты на идентификатор электронной почты, указанный в столбце B, с указанным ниже идентификатором отправителя и содержимым.

Электронная почта должна срабатывать всякий раз, когда изменяется значение в столбце D, за исключением пробела, и если ранее значение было "B", а теперь оно изменилось на "C", то почта должна срабатывать.

Sender-example@gmail.com
CC-test1@gmail.com, test2@gmail.com

Тело электронной почты:

Привет, Алекс (Should be picked from column A depending against which name e-mail trigger)

какое-то предложение здесь. некоторое предложение здесь с вашим ERT ER (Should be pick from column C) имеет статус A (should be pick from column D).

С уважением,
пример
123456789

Я пытаюсь использовать приведенный ниже скрипт (который работает нормально, просто хочу выделить жирным шрифтом значение identifier и status в теле письма):

    function sendEmailToUser(event){
  var eventRange = event.range;
  var sheet = eventRange.getSheet();
  var sheetName = sheet.getName();
  var column = eventRange.getColumn();
  if (sheetName == "Sheet1" && column == 4){ // Make sure the edited column is in the correct sheet, otherwise editing Column D in Sheet3 might trigger this
    var row = eventRange.getRow(); // You need to know which row so you can send the email to the correct person
    var rowValues = sheet.getRange(row, 1, 1, 4).getValues();
    var name = rowValues[0][0];
    var sendTo = rowValues[0][1];
    var identifier = rowValues[0][2];
    var status = rowValues[0][3];
    if (status != "") { // Don't send the email if the status is blank
      var cc = "test1@example.com, test2@example.com";
      var subject = "What is the: " + identifier;
      var content = "Hi " + name + "\nWhat is the value " + identifier + " with the status " + status + "?";
      MailApp.sendEmail(sendTo, subject, content, {
        cc: cc
      });
    }
  }
}
Источник
Diego
8 апреля 2018 в 05:28
0

Вы просмотрели и пытались применить это? webapps.stackexchange.com/questions/54670/…

Serge insas
8 апреля 2018 в 05:29
1

Единственный способ получить то, что вы хотите, это использовать необязательное тело HTML. Текстовое тело не может быть отформатировано.

Vector JX
8 апреля 2018 в 05:41
1

@Diego Да ... но identifer и Status - это извлеченные значения, которые они не форматируют.

Diego
8 апреля 2018 в 05:47
0

@VectorJX Пожалуйста, покажите в своем коде, как вы пытаетесь его отформатировать.

Vector JX
8 апреля 2018 в 06:08
0

@Diego, я пытаюсь что-то вроде: var content = '<body>' "Hi " + name + '<p> '"\nWhat is the value "'<b>' + identifier + </b> " with the status "'<b>' + status +'</b>' "?"</body>;

Ответы (1)

avatar
Diego
8 апреля 2018 в 06:21
1

Вы смешиваете одинарные и двойные кавычки, а также неправильно их объединяете. Просмотрите Строки JavaScript.

Чтобы объединить '<body> и "Hi", необходимо включить оператор +, так как это две отдельные строки:

.
'<body>' + "Hi"

НО, конкатенация '<body>' и "Hi" не нужна, если можно просто записать как

"<body>Hi" 

Вот что вам нужно сделать:

var content = "Hi " + name + "\nWhat is the value " + identifier + " with the status " + status + "?";
var contentHTML = "<body><p>Hi " + name + "</p><br><p>What is the value <b>" + identifier + "</b> with the status <b>" + status + "</b>?</p></body>";
MailApp.sendEmail(sendTo, subject, content, {
  cc: cc,
  htmlBody: contentHTML
});

content Отображает обычный текст (неформатированный) для тех пользователей, чьи почтовые клиенты (или по личным предпочтениям) не отображают электронную почту в формате HTML. contentHTML — то же самое, но показывает содержимое в формате HTML.