google-apps-script - 有没有办法在 Google App Scripts 中调用 getAlias 名称?
问题描述
问题是 - 电子邮件是从别名 [cs@example.com] 发送的,收件箱中显示的名称是 cs(用户),而不是实际名称 - 示例支持。
一个可能的解决方案当然是使用 options 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
}
}
}
你知道一种可能性吗?感谢您的帮助!
解决方案
这只能通过 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 语句。
推荐阅读
- python - 从文本文件构建 Python 字典
- c - 尝试编辑结构指针数组中的结构数据时出现分段错误
- macos - macOS 外部屏幕上 Intellij 中的模糊字体
- reactjs - swr vs axios 与 setInterval 用于大型 json 数据和 React 中的高频率
- windows - 从脚本打开 Powershell 后将命令传递给 Admin Powershell
- javascript - 导入本地开发模块
- python - 将 omxplayer “-s” 输出保存为字符串
- docker - 如何从 docker 容器中复制 npm 构建工件
- python - 将 Azure 应用配置用于短期应用程序中的功能标志
- asp.net - 当用户在支付网关所有会话数据丢失后重定向到网站时,我们使用的是 ASP.NET webform .NET 4.8 Framework