首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在应用程序脚本发送的电子邮件中显示我的姓名?

如何在应用程序脚本发送的电子邮件中显示我的姓名?
EN

Stack Overflow用户
提问于 2022-03-10 17:08:35
回答 2查看 630关注 0票数 1

我的代码现在看起来如下:

代码语言:javascript
运行
复制
GmailApp.sendEmail(address, subject, body, {htmlBody : body});

我的参考问题: 在使用应用程序脚本创建的电子邮件中添加签名的语法错误

我的问题:它显示发件人为alex.ken@..。

我想要的东西:,我希望脚本以用户的名字命名。所有用户都在Google设置中为他们的电子邮件地址设置了不同的名称。

PS -请注意,我有多个用户使用工作表/宏,所以我不能在name参数中有fix值。

请帮帮忙。

编辑1=Solution:

代码语言:javascript
运行
复制
var user = Session.getActiveUser().getUsername(); //gives username
var firstpart = user.split('.')[0]; //gives first part of username
var uppercase = firstpart.charAt(0).toUpperCase() + firstpart.substring(1); //makes first letter upper case
var display = uppercase + " with Ban Company";
.
.
.
.
GmailApp.sendEmail(address, subject, body, {htmlBody : body + signature,cc: "test@gmail.com",name:display});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-10 19:32:23

您的解决方案适用于name.surname@...格式的电子邮件,但是如果用户有类似于itadmin@...、昵称或任何其他电子邮件变体的东西,您可能会遇到问题。

另一种解决方案是使用People API高级服务检索当前用户的配置文件名,因为Apps脚本的Session.getActiveUser()只包含用户的电子邮件,还有一些场景在那里不起作用

这包括更多的步骤,它们必须授权People API,但是您可以获得任何用户的配置文件名称。

  1. 在Apps脚本编辑器中单击启用高级服务旁边的+。然后,您可以添加人员服务。

  1. 将配置文件范围添加到项目中通过编辑appscript.json清单文件。
代码语言:javascript
运行
复制
  {
    ...
    "oauthScopes": [
      "https://www.googleapis.com/auth/userinfo.profile"
    ],
   ...
  }
  1. 添加一个函数,该函数将从People API检索当前用户的配置文件名称信息。
代码语言:javascript
运行
复制
//This will contain a user's names
function getCurrentUser(){
  var currentuser = People.People.get("people/me", {"personFields":"names"})
  return currentuser.names[0]
}

var firstname = getCurrentUser().givenName //gets the user's first name
var fullname = getCurrentUser().displayName // gets the user's full profile name

//You can then add either variable as the name 

GmailApp.sendEmail(address, subject, body, {htmlBody : body + signature,cc: "test@gmail.com",name:firstname});

如果您需要它,您还可以检索更多的不仅仅是名称,还可以检索其他用户配置文件信息。查看文档这里

票数 2
EN

Stack Overflow用户

发布于 2022-03-10 18:06:41

使用

代码语言:javascript
运行
复制
const name = 'Alex from Ban' // replace the string by someway to assign the value that you want to use. 
GmailApp.sendEmail(address, subject, body, {htmlBody : body, name: name });

参考文献

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71428113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档