Как добавить электронную почту в мой скрипт Google - PullRequest
0 голосов
/ 10 июля 2019

У меня есть унаследованный скрипт Google, и я хочу обновить его, чтобы он соответствовал текущим требованиям.

В настоящее время он отправляет 2 электронных письма участнику и спонсору, используя данные в Google Sheet.Я попытался скомбинировать его так, чтобы раздел «Теперь электронная почта для каждого документа» отправлял электронное письмо участнику, а спонсор - cc.

Я дошел до обновления кода с:

var sendTo = row[EMAIL]; 

до:

var sendTo = row[EMAIL] + " , " + sponsors; 

и удаление раздела «2.Личный случай », который не решает запрос cc.

Я попытался изменить существующий код, добавив дополнительные параметры, как указано в https://developers.google.com/apps-script/reference/mail/mail-app, но, похоже, не могу его получитьработайте в приведенном ниже коде.

// Now email for each doc
  var email = getAppraiseeEmail();
  if(email && email.body) {
    email.body = email.body.replaceAll('%doctitle1%', bTitle)
     /*.replaceAll('%doctitle2%', pTitle)
     .replaceAll('%doctitle3%', dTitle)
     .replaceAll('%doctitle4%', dpTitle)
     .replaceAll('%link1%', bFile.getUrl())
     .replaceAll('%link2%', pFile.getUrl())
     .replaceAll('%link3%', dFile.getUrl())
     .replaceAll('%link4%', dpFile.getUrl())*/
     .replaceAll('%link5%', child.getUrl())
     .replaceAll('%name%', row[NAME]);

    var sendTo = row[EMAIL];
    if(sendTo && sendTo!=='') {
      email.recipient = sendTo;
      sendAnEmail(email);
    }
  } else {
    throw Error('missing email configuration (Business Case)');
  }


// 2. Personal Case
  if(sponsors.length > 0) {
    var emailRev = getSponsorEmail();
    if(emailRev && emailRev.body) {
      emailRev.body = emailRev.body.replaceAll('%doctitle1%', bTitle)
      /*.replaceAll('%doctitle2%', pTitle)
      .replaceAll('%doctitle3%', dTitle)
      .replaceAll('%doctitle4%', dpTitle)
      .replaceAll('%link1%', bFile.getUrl())
      .replaceAll('%link2%', pFile.getUrl())
      .replaceAll('%link3%', dFile.getUrl())
      .replaceAll('%link4%', dpFile.getUrl()) */
      .replaceAll('%link5%', child.getUrl())
      .replaceAll('%name%', row[NAME]);

      var sendTo = sponsors.join(',');
      if(sendTo && sendTo!=='') {
        emailRev.recipient = sendTo;
        sendAnEmail(emailRev);
      }
    } else {
      throw Error('missing email configuration (sponsor)');
    }
  } // end if re sponsors

  row[NOTES] = 'Files created & shared, ' + timestamp;
} catch(e) {
  console.error(e);
  row[NOTES] = 'An error occurred (' + e + '), ' + timestamp;
}

function getAppraiseeEmail() {
var email = {};
email.body = getConfig('email01');
email.subject = getConfig('subject01');
return email;
}

function getSponsorEmail() {
var email = {};
email.body = getConfig('email02');
email.subject = getConfig('subject02');
return email;
}

function sendAnEmail(email) {
var options = { noReply: true, htmlBody: email.body };
MailApp.sendEmail(email.recipient, email.subject, null , options);
}

В идеале он должен отправить электронное письмо из раздела «Теперь электронная почта для каждого документа» и указать спонсоров в разделе «2».Личное дело '.

Заранее спасибо!

ОБНОВЛЕНИЕ 15/07/19

Я обновил код ниже, который теперь работает:

// Now email for each doc
   var email = getAppraiseeEmail();
  if(email && email.body) {
    email.body = email.body.replaceAll('%doctitle1%', bTitle)
                           .replaceAll('%link5%', child.getUrl())
                           .replaceAll('%name%', row[NAME]);

    var CC = row[SPONSORS]
    var sendTo = row[EMAIL]
    if(sendTo && sendTo!=='') {
      email.recipientTO = sendTo;
      email.CC = CC;
      sendAnEmail(email); 
    }
  } else {
    throw Error('missing email configuration (Business Case)');
  }

 row[NOTES] = 'Files created & shared, ' + timestamp;
} catch(e) {
  console.error(e);
  row[NOTES] = 'An error occurred (' + e + '), ' + timestamp;
}

function getAppraiseeEmail() {
var email = {};
email.body = getConfig('email01');
email.subject = getConfig('subject01');
return email;
}

function sendAnEmail(email) {
var options = { noReply: true, htmlBody: email.body, cc: email.CC };
MailApp.sendEmail(email.recipientTO, email.subject, null , options);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...