首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >需要向此google脚本添加什么内容才能将电子邮件标记为已读

需要向此google脚本添加什么内容才能将电子邮件标记为已读
EN

Stack Overflow用户
提问于 2017-07-22 05:31:12
回答 2查看 1.2K关注 0票数 0

我想看看如何在执行此脚本后标记读取的消息。我已经通读了Class GmailApp,但我还是个新手,不知道该怎么做。

这个脚本对我来说是成功的,如果它根据搜索标准将电子邮件数据拉到google sheets中,然后将这些邮件标记为已读。目前,它只会将电子邮件放到google sheets中。

谢谢您抽时间见我。

代码语言:javascript
复制
var SEARCH_QUERY = "label:aggieworks is:unread to:me subject:*WO:*";

// Credit: https://gist.github.com/oshliaer/70e04a67f1f5fd96a708

function getEmails_(q) {
    var emails = [];
    var threads = GmailApp.search(q);
    for (var i in threads) {
        var msgs = threads[i].getMessages();
        for (var j in msgs) {
            emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
                .replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')
            ]);
        }
    }
    return emails;
}

function appendData_(sheet, array2d) {
    sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
}

function saveEmails() {
    var array2d = getEmails_(SEARCH_QUERY);
    if (array2d) {
        appendData_(SpreadsheetApp.getActiveSheet(), array2d);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2017-07-23 00:44:52

假设函数按您所拥有的方式工作。这应该将消息标记为已读。

代码语言:javascript
复制
function getEmails_(q) 
{
    var emails = [];
    var threads = GmailApp.search(q);
    for (var i in threads) {
        var msgs = threads[i].getMessages();
        for (var j in msgs) 
        {
            emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
                .replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')]);
            msgs[j].markRead();   
        }
    }
    return emails;
}
票数 1
EN

Stack Overflow用户

发布于 2018-08-23 03:36:07

长度错误的原因是array2d为零。appendData_函数失败。

if()语句中执行appendData_函数之前,需要评估array2d内容。

我还不知道那会是什么样子

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45246992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档