Gmail AppScript mailMessage.getFrom() 到 return 电子邮件不是名字
Gmail AppScript mailMessage.getFrom() to return email not name
类似于:Getting only email address to display when using message.getFrom() in JavaMail但无法应用该解决方案。
尝试在 Google AppScript 上使用 mailMessage.getFrom() 和 Gmail。
默认脚本:
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();
此 returns 发件人的姓名,而不是实际的电子邮件地址。 getFrom().getAddress()
尝试用上面提到的 post 试试运气,但显然它没有用,getFrom()
返回一个字符串。
知道如何访问包含发件人元数据的数据数组或字典,以便我自己提取电子邮件、姓名等吗?
这似乎是一个错误!
在卡片中使用getFrom()
方法时,出现的是名字,而不是你描述的电子邮件地址,这与[=19]中包含的内容相反=].
我冒昧地在 Google 的问题跟踪器上为您报告了此行为:
您可以点击本页左上角问题编号旁边的 ☆,让 Google 知道更多人遇到此问题,因此更有可能更快地看到它。
解决方法:
同时,由于 getFrom()
方法在 Apps 脚本接口中仍然有效,您可以从 getFrom()
的 return 字符串中获取电子邮件地址。
如果你使用 Logger.log(mailMessage.getFrom())
,你会在日志中得到一个 return 的形式:
Firstname Lastname <emailaddress@domain.com>
因此,您需要做的就是替换:
var from = mailMessage.getFrom();
与:
var from = mailMessage.getFrom().split("<")[1].split(">")[0];
参考文献:
类似于:Getting only email address to display when using message.getFrom() in JavaMail但无法应用该解决方案。
尝试在 Google AppScript 上使用 mailMessage.getFrom() 和 Gmail。
默认脚本:
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();
此 returns 发件人的姓名,而不是实际的电子邮件地址。 getFrom().getAddress()
尝试用上面提到的 post 试试运气,但显然它没有用,getFrom()
返回一个字符串。
知道如何访问包含发件人元数据的数据数组或字典,以便我自己提取电子邮件、姓名等吗?
这似乎是一个错误!
在卡片中使用getFrom()
方法时,出现的是名字,而不是你描述的电子邮件地址,这与[=19]中包含的内容相反=].
我冒昧地在 Google 的问题跟踪器上为您报告了此行为:
您可以点击本页左上角问题编号旁边的 ☆,让 Google 知道更多人遇到此问题,因此更有可能更快地看到它。
解决方法:
同时,由于 getFrom()
方法在 Apps 脚本接口中仍然有效,您可以从 getFrom()
的 return 字符串中获取电子邮件地址。
如果你使用 Logger.log(mailMessage.getFrom())
,你会在日志中得到一个 return 的形式:
Firstname Lastname <emailaddress@domain.com>
因此,您需要做的就是替换:
var from = mailMessage.getFrom();
与:
var from = mailMessage.getFrom().split("<")[1].split(">")[0];