google-apps-script - 使用 Google App Script 阅读 Gmail 标签中的所有邮件
问题描述
我是 Google App Script 的业余爱好者。
拯救了这个对我有用但不正确的脚本。现在只为线程的第一条消息而不是所有消息读取和 phsarse 信息。
我需要阅读、检查和解析标签的所有消息,而不仅仅是线程的第一个。我需要脚本读取并解析位于标签上的所有单个消息。然后将所有标记为已读。
有人可以帮助我并更改代码来执行此操作吗?我查看了 Google APP 脚本手册,我尝试了不同的方法,但我无法让它工作。
谢谢!
//var threads = GmailApp.getInboxThreads();
// Have to get data separate to avoid google app script limit!
var start = 0;
var threads = GmailApp.search("newer_than:1d AND is:unread AND label:eur OR label:desc",0,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();
messages[0].markRead();
// implement your own parsing rule inside
if (content) {
var tmp;
tmp = content.match(/\b([A-B\d][A-B\d]{4})\b/);
var cod = (tmp && tmp[1]) ? tmp[1].trim() : 'Error';
tmp = content.match(/\b(\d+[R])/);
var prom = (tmp && tmp[1]) ? tmp[1].trim() : 'Error';
tmp = content.match(/\b(\d{2}\.\d{2}\)\b/);
var exp = (tmp && tmp[1]) ? tmp[1].trim() : 'Error';
sheet.appendRow([cod, prom, exp]);
Utilities.sleep(500);
}
}
}; ```
解决方案
为了将消息标记为已读,您必须迭代每个线程的消息。
你只得到线程的第一条消息,所以你必须替换
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var content = messages[0].getPlainBody();
messages[0].markRead();
.....
像这样:
function readMails (){
var threads = GmailApp.search("newer_than:1d AND is:unread AND label:eur OR label:desc",0,100);
//Iterate threads
for (var i=0; i < threads.length; i++){
var messages = threads[i].getMessages();
//Iterate messages of each thread
for (var k=0; k < messages.length; k++){
var content = messages[k].getPlainBody();
messages[k].markRead();
.....
}
}
}
推荐阅读
- regex - $regex 查找整个单词,mongodb
- angular - 如何为Angular 8找到具有特定值的对象数量
- php - php 处理 & 作为 URL 中字符串的一部分
- wordpress - Apple Pay with Stripe - Wordpress 安装验证 - GCP
- javascript - 将 Javascript 文件与 wordpress 插件链接
- python - 在 python/kivy 中使用 screenmananger 时出现黑屏
- c# - 第三方项目未使用的自发布包中的build文件夹文件
- python - Top down movement in Pygame
- php - 问题不在 MySQL 数据库中远程运行查询
- c++ - 从模板参数包将指向成员的指针传递给函数对象