Игнорирование пустого поля ввода адреса электронной почты Google Apps Script - PullRequest
0 голосов
/ 30 августа 2018

У меня есть HTML-форма, которая содержит адреса электронной почты от разных поставщиков. Я создаю своего рода функцию слияния, чтобы при отправке формы я мог отправить всем контактам персонализированное электронное письмо. Вот мой файл .gs:

function sendEmail(form) {
  const sSheet = SpreadsheetApp.getActiveSpreadsheet(); 
  const file = DriveApp.getFileById(sSheet.getId());
  const documentUrl = file.getUrl();

  /* var toEmail = form.toAddress;  
  var ccEmail = form.ccAddress;  
  var fromEmail = "****@*****.com";
  var subject = form.subject;
  var message = form.message;   */


  var toEmail = "";  
  var fromEmail = "****@*****.com";
  var message = "";

var hotelAddresses = [
            form.toAddress1,
            form.toAddress2,
            form.toAddress3,
            form.toAddress4,
            form.toAddress5,
            form.toAddress6,
            form.toAddress7,
            form.toAddress8,
            form.toAddress9,
            form.toAddress10,
            form.toAddress11,
            form.toAddress12,
            form.toAddress13,
            form.toAddress14,
            form.toAddress15,
            form.toAddress16,
            form.toAddress17,
            form.toAddress18,
            form.toAddress19,
            form.toAddress20,
            form.toAddress21,
            form.toAddress22,
            form.toAddress23,
            form.toAddress24,
            form.toAddress25,
            form.toAddress26,
            form.toAddress27,
            form.toAddress28,
            form.toAddress29,
            form.toAddress30,
            form.toAddress31,
            form.toAddress32,
            form.toAddress33,
];

var contactNames = [
            form.contactName1,
            form.contactName2,
            form.contactName3,
            form.contactName4,
            form.contactName5,
            form.contactName6,
            form.contactName7,
            form.contactName8,
            form.contactName9,
            form.contactName10,
            form.contactName11,
            form.contactName12,
            form.contactName13,
            form.contactName14,
            form.contactName15,
            form.contactName16,
            form.contactName17,
            form.contactName18,
            form.contactName19,
            form.contactName20,
            form.contactName21,
            form.contactName22,
            form.contactName23,
            form.contactName24,
            form.contactName25,
            form.contactName26,
            form.contactName27,
            form.contactName28,
            form.contactName29,
            form.contactName30,
            form.contactName31,
            form.contactName32,
            form.contactName33,            
];

var days = [
            form.day1,
            form.day2,
            form.day3,
            form.day4,
            form.day5,
            form.day6,
            form.day7,
            form.day8,
            form.day9,
            form.day10,
            form.day11,
            form.day12,
            form.day13,
            form.day14,
            form.day15,
            form.day16,
            form.day17,
            form.day18,
            form.day19,
            form.day20,
            form.day21,
            form.day22,
            form.day23,
            form.day24,
            form.day25,
            form.day26,
            form.day27,
            form.day28,
            form.day29,
            form.day30,
            form.day31,
            form.day32,
            form.day33,            
];

var dates = [
            form.date1,
            form.date2,
            form.date3,
            form.date4,
            form.date5,
            form.date6,
            form.date7,
            form.date8,
            form.date9,
            form.date10,
            form.date11,
            form.date12,
            form.date13,
            form.date14,
            form.date15,
            form.date16,
            form.date17,
            form.date18,
            form.date19,
            form.date20,
            form.date21,
            form.date22,
            form.date23,
            form.date24,
            form.date25,
            form.date26,
            form.date27,
            form.date28,
            form.date29,
            form.date30,
            form.date31,
            form.date32,
            form.date33,            
];

var times = [
            form.time1,
            form.time2,
            form.time3,
            form.time4,
            form.time5,
            form.time6,
            form.time7,
            form.time8,
            form.time9,
            form.time10,
            form.time11,
            form.time12,
            form.time13,
            form.time14,
            form.time15,
            form.time16,
            form.time17,
            form.time18,
            form.time19,
            form.time20,
            form.time21,
            form.time22,
            form.time23,
            form.time24,
            form.time25,
            form.time26,
            form.time27,
            form.time28,
            form.time29,
            form.time30,
            form.time31,
            form.time32,
            form.time33,            
];

var additionalInfo = [
            form.additional1,
            form.additional2,
            form.additional3,
            form.additional4,
            form.additional5,
            form.additional6,
            form.additional7,
            form.additional8,
            form.additional9,
            form.additional10,
            form.additional11,
            form.additional12,
            form.additional3,
            form.additional14,
            form.additional15,
            form.additional16,
            form.additional17,
            form.additional18,
            form.additional19,
            form.additional20,
            form.additional21,
            form.additional22,
            form.additional23,
            form.additional24,
            form.additional25,
            form.additional26,
            form.additional27,
            form.additional28,
            form.additional29,
            form.additional30,
            form.additional31,
            form.additional32,
            form.additional33,            
];

for(var i = 0; i<times.length; i++){



var subject = "Meeting - " + days[i] + ", " + dates[i] + " at " + times[i];
toEmail = hotelAddresses[i];
message = "Dear " + contactNames[i] + "," 

          +"<br><br>"+

          "Please confirm the meeting on " + days[i] + " " + dates[i] + " at " + times[i] + "." + "<br>" + "<br>" +

          additionalInfo[i] +

          " If you could kindly let me know if you are able to confirm that would be great." + "<br>" + "<br>" +

          "Many thanks and I look forward to hearing from you soon." + "<br>" + "<br>" +

          "Yours sincerely," + "<br>" + "<br>" +

          form.yourName + "<br>" + "<br>"

          + "<em><b>" + form.yourPosition + "</b></em> <br><br>" +

          "<span style='color:#0e216d'><b>  Company name. </b>"  + "<br>" +






  GmailApp.sendEmail(
    toEmail,         // recipient
    subject,                 // subject 
    'test', {                        // body
      htmlBody: message                 // advanced options
    }
  ); 
}
}

Работает нормально, за исключением того, что иногда поля ввода для электронной почты будут пустыми, и в этом случае мне понадобится скрипт, чтобы игнорировать этого поставщика и продолжать работать. На данный момент он явно нажимает на пустой ввод и останавливает выполнение.

Полагаю, мне нужно своего рода условное выражение ... что-то вроде if (hotelAddresses [i]! = Null) {}

Но я не могу понять, куда вставить это ...

Дополнительно: 31 августа 18

Для HTML у меня есть ряд объектов (всего 33), которые настроены так:

   <input type="checkbox" id="check1" class="check" checked>

   <input type="text" id="name1" class="contactNameInput" name="toAddress1">

   <input type="text" id="contactName1" class="contactNameInput mailName" name="contactName1">

   <input type="text" id="time1" class="contactNameInput hidden mailTime" name="time1">

   <input type="text" id="day1" class="contactNameInput hidden mailDay" name="day1">

   <input type="text" id="date1" class="contactNameInput hidden mailDate" name="date1">

   <textarea class="additional contactNameInput" id="additional1" name="additional1" placeholder="Additional requests..."></textarea>

   <div class="preview1"></div>       

1 Ответ

0 голосов
/ 31 августа 2018

Вы хотите разделить дела с hotelAddresses[i] и без него, используя скрипт типа if(hotelAddresses[i] != null) {}. Когда мое понимание верное, как насчет этой модификации?

Очки модификации:

  • Хотите добавить после "<span style='color:#0e216d'><b> Company name. </b>" + "<br>" +? В текущем сценарии это "<span style='color:#0e216d'><b> Company name. </b>" + "<br>" + GmailApp.sendEmail(...). Если вы хотите добавить больше строк, пожалуйста, поместите их. Если вы не хотите добавлять, удалите последнюю +.
  • Я думаю, что сценарий if(hotelAddresses[i] != null) {} можно использовать в цикле for.

Сценарий, который отражен выше, выглядит следующим образом.

Модифицированный скрипт:

В этом измененном сценарии был изменен сценарий цикла for.

for(var i = 0; i<times.length; i++) {
  var toEmail = hotelAddresses[i];
  if (toEmail) {
    var subject = "subject";
    var message = "messages";
    GmailApp.sendEmail(toEmail, subject, 'test', {htmlBody: message});
  } else {

    // do something

  }
}

Примечание:

  • В этом измененном сценарии subject и message заменены на "subject" и "messages" соответственно. Поэтому, пожалуйста, измените их для вашей ситуации.
  • Если вы хотите что-то сделать, когда hotelAddresses[i] равно нулю, пожалуйста, измените // do something.
    • Если вы не хотите что-то делать, когда hotelAddresses[i] равно нулю, удалите else {}.

Если я неправильно понимаю ваш вопрос, пожалуйста, скажите мне. Я хотел бы изменить его.

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