Ben*_*min 2 google-apps-script gmail-addons
类似于:在JavaMail中使用message.getFrom()时仅显示电子邮件地址,但无法应用该解决方案。
尝试在 Google AppScript 上使用Gmail 的mailMessage.getFrom() 。
默认脚本:
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];
}
Run Code Online (Sandbox Code Playgroud)
var from = mailMessage.getFrom();
这将返回发件人的姓名,而不是实际的电子邮件地址。尝试getFrom().getAddress()尝试上面提到的帖子,但显然它不起作用,getFrom()返回了一个字符串。
任何想法如何访问包含发件人元数据的数据或字典数组,以便我可以自己提取电子邮件、姓名等?
Raf*_*rmo 14
看来,当getFrom()在卡片中使用该方法时,会出现名称,但不会出现您所描述的电子邮件地址,这与文档中包含的内容GmailMessage.getFrom()相反。
我冒昧地在 Google 的问题跟踪器上为您报告了此行为:
\n\n您可以点击本页左上角问题编号旁边的 \xe2\x98\x86,这可以让 Google 知道更多的人遇到了此问题,因此更有可能更快地被看到。
\n同时,由于该getFrom()方法仍然在 Apps Script 接口中工作,因此您可以从 的返回字符串中获取电子邮件地址getFrom()。
如果您使用Logger.log(mailMessage.getFrom()),您会在日志中得到以下形式的返回:
Firstname Lastname <emailaddress@domain.com>\nRun Code Online (Sandbox Code Playgroud)\n因此,您需要做的就是替换:
\nFirstname Lastname <emailaddress@domain.com>\nRun Code Online (Sandbox Code Playgroud)\n和:
\nvar from = mailMessage.getFrom();\nRun Code Online (Sandbox Code Playgroud)\nGmailMessage.getFrom()