在Google App Scripts中处理收件箱中的电子邮件列表。 从我需要的消息中获取每个消息的地址和地址。 我用的时候 message.getFrom()方法获取from地址,它返回如下内容:" FirstName LastName"。但是,我想要的是简单的电子邮件地址:" email@domain.com"我无法在GmailApp对象或Message对象上找到只返回此信息的方法。
getFrom()返回一个简单的字符串,而不是可以进一步剖析的地址对象。 我错过了什么吗?
答案 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"