有没有一种方法可以在Google App脚本中调用getAlias名称?

时间:2019-03-26 22:43:17

标签: google-apps-script google-sheets

问题是-电子邮件是从别名[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 :(得分:0)

只有使用Gmail高级Google服务才能实现。

重要!。首先在资源>高级Google服务中启用Gmail。。然后按照说明在脚本的GCP项目中启用API。

以您的代码为例:

...
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语句。