我有一个脚本从gmail帐户中提取数据。该脚本扫描收件箱中的邮件并查找相关的文本行并将其放入Google表格中。
电子邮件类似于:
车辆:5761364,位置:(谷歌地图的URL)
我用来获取数据的脚本是:
function processInboxToSheet() {
var start = 0;
var threads = GmailApp.getInboxThreads(start, 100);
var sheet = SpreadsheetApp.getActiveSheet();
var result = [];
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var content = messages[0].getPlainBody();
if (content) {
var tmp;
tmp = content.match(/Vehicle:\s*([A-Za-z0-9\s]+)(\r?\n)/);
var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No vehicle';
tmp = content.match(/Map Link:\s*([A-Za-z ][A-Za-z0-9!@#$%?=^.,:&*/ ]+)/);
var comment = (tmp && tmp[1]) ? tmp[1] : 'No url';
sheet.appendRow([username, comment]);
Utilities.sleep(500);
}
}
};
是否可以制作一种同步功能,其中Google表格会自动更新收件箱中的电子邮件。现在它每次运行都会重复。
此外,有人可以告诉我是否有可能让脚本删除在删除电子邮件时创建的行。因此,工作表列表始终与收件箱同步吗?
请问我是否有意义。
答案 0 :(得分:0)
您可以从timebased trigger运行您的脚本,如果您每次只重写整个工作表,那么这将消除已删除电子邮件中的条目。如果您可以将收到的日期添加到电子表格中,那么您可以按日期订购它们。
答案 1 :(得分:0)
要解决电子邮件重复的问题,您需要检查邮件是否未读。如果未读,请先将其读取,然后再读取。我在YouTube上制作了一系列视频,解释了这是如何实现的,并将完整代码发布在github上。您可以在这里观看:
https://youtu.be/nI1OH3pAz6s?t=9
您还可以从以下链接从GitHub获取完整代码: