希望有人可以帮助我!
我有一个带有访问传感器的侦察警报系统。每次打开特定门时,我都会收到该活动的电子邮件。由于Scout没有时间通知,无论是开启还是关闭,我都想在电子邮件端使用Google Apps for Gmail处理此问题。
周一至周五 - 上午8点之前和下午6点之后来自警报系统的任何电子邮件都应该发送到我的收件箱,否则它应该转到垃圾箱。
周六到周日 - 来自警报系统的所有电子邮件都应该发送到我的收件箱。
请告诉我这是可能的!!!
-UPDATE- 这是一个测试代码,但它似乎没有工作。我很快就在我的收件箱中收到了大量的所有邮件,希望有人可以帮忙清理它?
function MoveMsgBasedOnTime()
{
//Enter the Label you created in your Google Apps Account for scout@#######.com
var Label = GmailApp.getUserLabelByName("2 - Scout");
//Retrieve All Messages with Matching Label
var Threads = Label.getThreads();
for (var i = 0; i < Threads.length; i++)
{
var Msgs = Threads[i].getMessages();
for (var j=0;j < Msgs.length ;j++)
{
var MsgTime = new Date();
MsgTime = Msgs[j].getDate();
MsgTime.getDay();
//Test For Day of Week
//If Sunday (0) or Saturday (5)
if (MsgTime.getDay() == 0 || MsgTime.getDay() == 6)
{
var test ="Weekend";
//Move To Inbox
Threads[i].moveToInbox();
}
//If Monday(1), Tuesday (2), Wednesday (3), Thursday (4), Friday (5)
if (MsgTime.getDay() == 1 || MsgTime.getDay() == 2 || MsgTime.getDay() == 3 || MsgTime.getDay() == 4 || MsgTime.getDay() == 5 )
{
var test ="Weekday";
// Time Interval To Delete Message
var startTime = '8:00 AM';
var endTime = '7:30 PM';
var now = new Date();
var startDate = dateObj(startTime);
var endDate = dateObj(endTime);
var Label = GmailApp.getUserLabelByName("2 - Scout");
var actionToTake = now < endDate && now > startDate ? 'delete' : 'move';
//If Message Time is Between 8am and 6pm Take Action to Move to Trash
if (actionToTake == "delete")
;
//If Message Time is Before 8am or After 6pm Take Action to Move to Inbox
if (actionToTake == "move")
Threads[i].removeLabel(Label);
Threads[i].moveToInbox();
}
}
}
}
//Function To Parse Time from Date for Comparisson using startTime & endTime variables above
function dateObj(d)
{
var parts = d.split(/:|\s/),
date = new Date();
if (parts.pop().toLowerCase() == 'pm') parts[0] = (+parts[0]) + 12;
date.setHours(+parts.shift());
date.setMinutes(+parts.shift());
return date;
}
答案 0 :(得分:0)
您可以使用Gmail服务类检查您的主题,并获取从警报系统收到的消息。
getMessagesForThread(thread)
您将能够获得新消息并比较他们的时间。
GmailMessage.getDate()
选择要发送垃圾邮件并将其删除的邮件。
moveMessageToTrash(message)
所有方法和说明均可在Google developer app script -Gmail service
上找到编辑:您将当前日期与开始和结束时间进行比较。
var actionToTake = now < endDate && now > startDate ? 'delete' : 'move';
应该是留言时间。还对dateObj
函数进行了一些修改。请参阅以下代码。
function MoveMsgBasedOnTime()
{
var Label = GmailApp.getUserLabelByName("2 - Scout");
//Retrieve All Messages with Matching Label
var Threads = Label.getThreads();
for (var i = 0; i < Threads.length; i++)
{
var Msgs = Threads[i].getMessages();
for (var j=0;j < Msgs.length ;j++)
{
var MsgTime = Msgs[j].getDate();
//If Sunday (0) or Saturday (5)
if (MsgTime.getDay() == 0 || MsgTime.getDay() == 6)
{
//Move To Inbox
Threads[i].moveToInbox();
}
//If Monday(1), Tuesday (2), Wednesday (3), Thursday (4), Friday (5)
if (MsgTime.getDay() == 1 || MsgTime.getDay() == 2 || MsgTime.getDay() == 3 || MsgTime.getDay() == 4 || MsgTime.getDay() == 5 )
{
var startTime = '8:00 AM';
var endTime = '7:30 PM';
var startDate = dateObj(startTime,MsgTime);
var endDate = dateObj(endTime,MsgTime);
var actionToTake = MsgTime < endDate && MsgTime > startDate ? 'delete' : 'move';
//If Message Time is Between 8am and 6pm Take Action to Move to Trash
if (actionToTake == "delete");
{
}
//If Message Time is Before 8am or After 6pm Take Action to Move to Inbox
if (actionToTake == "move")
{
Threads[i].removeLabel(Label);
Threads[i].moveToInbox();
}
}
}
}
}
//Function To Parse Time from Date for Comparisson using startTime & endTime variables above
function dateObj(d,MsgTime)
{
var parts = d.split(/:|\s/),
date = new Date(MsgTime);
if (parts.pop().toLowerCase() == 'pm') parts[0] = (+parts[0]) + 12;
date.setHours(+parts.shift());
date.setMinutes(+parts.shift());
return date;
}