gpt4 book ai didi

google-apps-script - Gmail AppScript mailMessage.getFrom() 返回电子邮件而不是姓名

转载 作者:行者123 更新时间:2023-12-05 08:31:15 28 4
gpt4 key购买 nike

类似于:Getting only email address to display when using message.getFrom() in JavaMail但无法应用该解决方案。

尝试使用 mailMessage.getFrom()在带有 Gmail 的 Google AppScript 上。

默认脚本:

function loadAddOn(event) {
var accessToken = event.messageMetadata.accessToken;
var messageId = event.messageMetadata.messageId;
GmailApp.setCurrentMessageAccessToken(accessToken);
var mailMessage = GmailApp.getMessageById(messageId);
var from = mailMessage.getFrom();

var openDocButton = CardService.newTextButton()
.setText("open docs")
.setOpenLink(
CardService.newOpenLink().setUrl("https://developers.google.com/gmail/add-ons/"));

var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader().setTitle("My First Gmail Addon"))
.addSection(CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText("The email is from: " + from))
.addWidget(openDocButton))
.build();

return [card];
}

var from = mailMessage.getFrom();

这会返回发件人的姓名,而不是实际的电子邮件地址。尝试了 getFrom().getAddress() 试试上面提到的帖子的运气,但显然它没有用,getFrom() 返回一个字符串。

知道如何访问包含发件人元数据的数据数组或字典,以便我自己提取电子邮件、姓名等吗?

最佳答案

这似乎是一个错误!

看起来,当在卡片中使用 getFrom() 方法时,出现的是名称,而不是您描述的电子邮件地址,这与 GmailMessage.getFrom() documentation 中包含的内容相反。

我冒昧地在 Google 的问题跟踪器上为您报告此行为:

您可以点击此页面左上角问题编号旁边的 ☆,这样 Google 就会知道有更多人遇到此问题,因此更有可能更快地看到它。

解决方法:

同时,由于 getFrom() 方法仍然在 Apps Script 接口(interface)中工作,您可以从 getFrom() 的返回字符串中获取电子邮件地址.

如果您使用 Logger.log(mailMessage.getFrom()),您会在日志中获得以下形式的返回:

Firstname Lastname <emailaddress@domain.com>

所以,您需要做的就是替换:

var from = mailMessage.getFrom();

与:

var from = mailMessage.getFrom().split("<")[1].split(">")[0];

引用资料:

关于google-apps-script - Gmail AppScript mailMessage.getFrom() 返回电子邮件而不是姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59449863/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com