我正在尝试使用 Google 脚本从我在特定标签下提交的转发电子邮件中提取电子邮件地址和姓名。
电子邮件如下所示:
发件人:A 发送时间:2019 年 9 月 22 日星期日晚上 8:00 至:其他、电子邮件 主题:转发的电子邮件
body
它们已全部转发到此特定收件箱。因此, header 实际上包含我转发的其他电子邮件地址。
我已经对 2000 多封电子邮件进行了排序,现在我想在电子表格中针对每个标签提取发件人(A)的姓名及其电子邮件地址 (person@gmail.com)。最好,我可以将名字和姓氏放在单独的单元格中(例如人员 | A | 电子邮件地址)
到目前为止我的代码如下:
function processInboxToSheet() {
// Have to get data separate to avoid google app script limit!
var start = 0;
var label = GmailApp.getUserLabelByName("LABEL");
var threads = label.getThreads();
var sheet = SpreadsheetApp.getActiveSheet();
var result = [];
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var content = messages[0].getPlainBody();
// implement your own parsing rule inside
if (content) {
var tmp;
tmp = content.match(/From:\n([A-Za-z0-9\s]+)(\r?\n)/);
var name = (tmp && tmp[1]) ? tmp[1].trim() : 'No name';
tmp = content.match(/<\n([A-Za-z0-9@.]+)/);
var email = (tmp && tmp[1]) ? tmp[1].trim() : 'No email';
sheet.appendRow([name, email]);
Utilities.sleep(500);
}
}
};
我只得到“No name”和“No email”作为输出,所以代码中有些东西不太起作用。我将非常感谢您的帮助。
最佳答案
您正在解析普通正文,它不包含 to 和 from。它仅包含消息正文。该 API 具有方法 getTo()
和 getFrom()
,其中包含您要解析的内容。请参阅the API for GmailMessage了解更多详情。
关于javascript - 从转发的电子邮件中提取电子邮件地址和姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58195794/