有没有办法从Google应用脚本中的Gmail邮件对象中获取特定的电子邮件地址?

时间:2014-10-07 18:19:50

标签: google-apps-script gmail

在Google App Scripts中处理收件箱中的电子邮件列表。 从我需要的消息中获取每个消息的地址和地址。 我用的时候 message.getFrom()方法获取from地址,它返回如下内容:" FirstName LastName"。但是,我想要的是简单的电子邮件地址:" email@domain.com"我无法在GmailApp对象或Message对象上找到只返回此信息的方法。

getFrom()返回一个简单的字符串,而不是可以进一步剖析的地址对象。 我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

getFrom()方法应以Some Person <someone@somewhere.com>格式返回邮件的发件人。如果您只需要字符串的电子邮件地址部分,则可以使用这样的正则表达式提取它(来自getFrom() method description的改编示例):

var thread = GmailApp.getInboxThreads(0,1)[0]; // get first thread in inbox
var message = thread.getMessages()[0]; // get first message
Logger.log(message.getFrom().replace(/^.+<([^>]+)>$/, "$1"));

该正则表达式将getFrom()方法返回的字符串替换为尖括号中的字符串部分(发件人的电子邮件地址)。

答案 1 :(得分:1)

获取GmailMessage对象后,您可以通过使用GmailMessage.getHeader("From")首先获取名为“发件人”的RFC标头,然后对其应用特定的正则表达式来获取电子邮件地址。

赞:

 // Get email from RFC Header "From"
 var rfcHeaderFrom = message.getHeader("From");
 var rfcHeaderFromMailRegex = /[^< ]+(?=>)/g;

 var mailSender = rfcHeaderFrom.match(rfcHeaderFromMailRegex)[0];

这将返回一个电子邮件地址,例如:"user@example.com"