Есть ли способ назвать имя getAlias ​​в скриптах Google App? - PullRequest
1 голос
/ 27 марта 2019

Проблема в том, что сообщения электронной почты отправляются с псевдонима [cs@example.com], а имя, отображаемое в папке «Входящие», - cs (пользователь), а не фактическое имя - Пример поддержки.

Возможным решением, конечно, является использование опций GmailApp.sendEmail(recipient, subject, body, {from: alias[0], name: 'Example Support'}), однако будет ли опция get, чтобы сохранить его в качестве переменной - как getName?

Это сокращенноеверсия текущего кода, которая работает, но не является идеальной (?‍♀️):

function myFunction() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastrow = sheet.getLastRow();
  var sent = 'SENT';

  for (var i = 2;i<=lastrow;i++){

    var email = sheet.getRange(i, 2).getValue();
    var subject = sheet.getRange(i, 3).getValue();
    var body = sheet.getRange(i, 4).getValue();
    var status = sheet.getRange(i, 5).getValue();

    var alias = GmailApp.getAliases();
    var support = alias[0];
    var accounting = alias[1];
    var name1 = 'Example Support';
    var name2 = 'Example Accounting';

    if (status == 'support') {
      GmailApp.sendEmail(email, subject, body, {from: support, name: name1});
      sheet.getRange(i, 7).setValue(sent); 
      SpreadsheetApp.flush
      } else if (status == 'accounting') {
        GmailApp.sendEmail(email, subject, body, {from: accounting, name: name2});
        sheet.getRange(i, 7).setValue(sent); 
        SpreadsheetApp.flush
        }
   }
}

Знаете ли вы о возможности?Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 27 марта 2019

Это возможно только с помощью расширенных служб Google Gmail.

Важно! Сначала включите Gmail в Ресурсы> Расширенные службы Google. Затем следуйте инструкциям по включениюAPI в проекте GCP вашего скрипта.

Чтобы использовать ваш код в качестве примера:

...
var support = alias[0]
...
if (status == 'support') {
  var aliasName = Gmail.Users.Settings.SendAs.get(me, support).displayName
  GmailApp.sendEmail(email, subject, body, {from: support, name: aliasName});
  sheet.getRange(i, 7).setValue(sent); 
  SpreadsheetApp.flush
}

Настройте другой оператор if аналогично.

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