AutoForward使用Google Scripts每月标记一次电子邮件

时间:2017-10-31 04:03:45

标签: email google-apps-script gmail

我是一个完整的菜鸟。

我想将每月1日标记的电子邮件转发到另一个电子邮件地址。使用Gmail的过滤器,标签“ forwardthis ”将应用于我在本月收到的发票和对帐单。每个月的第一天,我都希望Google将所有带有“ forwardthis ”标签的新电子邮件转发到另一个电子邮件地址,包括附件。

我发现的脚本不能像我希望的那样工作。不确定下面的间隔选项是什么,但我需要每月只运行一次我的脚本,1日。

function autoForward() {
    var label = 'forwardthis';
    var recipient = 'elvis@gmail.com';
    var interval = 5;          //  if the script runs every 5 minutes; change otherwise
    var date = new Date();
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
    var threads = GmailApp.search('label:' + label + ' after:' + timeFrom);
    for (var i = 0; i < threads.length; i++) {
        threads[i].getMessages()[0].forward(recipient);  // only the 1st message
    }
}

希望我的问题很明确。我非常感谢一些指导,谢谢。

1 个答案:

答案 0 :(得分:0)

发送在上次运行脚本后创建的标记电子邮件

显然,该脚本每5分钟运行一次,因此跟踪已发送脚本的已发送电子邮件的标签只会获取当前时间减去间隔后创建的标签,或者换句话说,自上次收到后标记的电子邮件脚本运行了。

  

由于你想在每个月的第一天运行脚本,你将不得不计算如何获得上个月1日的时间并将该值放入变量的时间。

function autoForward() {
    var label = 'forwardthis';
    var recipient = 'elvis@gmail.com';
    var interval = 5;          //  if the script runs every 5 minutes; change otherwise
    var date = new Date();
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;//This subtracts five minutes from the current time
    var threads = GmailApp.search('label:' + label + ' after:' + timeFrom);//Emails with the correct label and created since 5 minutes ago are sent
    for (var i = 0; i < threads.length; i++) {
        threads[i].getMessages()[0].forward(recipient);  // only the 1st message
    }
}

Noob与否,你可以想出来。
你需要的大部分是right here 或者可能是here 您可以使用触发器每月运行一次脚本。您可以阅读有关触发器here的信息 我希望有所帮助。