【发布时间】:2016-02-20 02:59:23
【问题描述】:
我使用此代码将附件保存到共享的 google 驱动器文件夹,并在通过邮件发生更改时收到通知。只要我搜索pdf附件,一切都很好。当我设置 file:xls 时,返回的消息远远超出预期。不仅调试返回的线程是正确的,并且在 Gmail 中的搜索字段中插入了查询,而且在这种情况下 getmessages() 返回了 38 条消息(和附件!不仅是 xls,还有一个 pdf)查询参数。 Gmail 中禁用了对话视图,与此附件唯一匹配的是 from: 字段。 我试图更改参考数据(通过添加 newer_than),但没有任何改变;我改变了for循环,没有任何改变。我是否错过了一些非常愚蠢的东西,或者这是 xls 的一种错误?
function salvataggioTavoloTecnico(){
var folderName = 'tavoloTecnico';
var p = 0;
var f1s= DriveApp.getFoldersByName(folderName).next().getFiles();
while (f1s.hasNext()) {
var f1 = f1s.next();
p++
} Logger.log(p);
var d = new Date();
d.setDate(d.getDate()-1);
var n = d.getFullYear() + "/" + addZero(d.getMonth()+1) + "/" + addZero(d.getDate());
var query = 'in:anywhere has:attachment filename:XLS newer_than:5d (from:mariano.casillo@mit.gov.it OR from:donato.castigliego@mit.gov.it OR from:luciano.aloia@mit.gov.it)';
//var query = 'in:anywhere has:attachment filename:xls '+ 'after:'+n+' (from:mariano.casillo@mit.gov.it OR from:donato.castigliego@mit.gov.it OR from:luciano.aloia@mit.gov.it)';
var elenco = GmailApp.search(query);
var quanteMail = elenco.length; Logger.log(quanteMail);
labelName = GmailApp.createLabel('Movimenti - Tavolo tecnico');
for (var i = 0 ; i < quanteMail; i++) {
//for ( var i in elenco) {
elenco[i].addLabel(labelName);
var thr = elenco[i];
var nn = thr.getMessageCount();
Logger.log(nn);
var mesgs = thr.getMessages();
var www = mesgs.length;
for(var j = 0 ; j < www ; j ++){
var attachments = mesgs[j].getAttachments();
var rrr = attachments.length;
for(var k = 0 ; k < rrr ; k ++) {
var attachment = attachments[k];
var attachmentBlob = attachment.copyBlob();
var file = DriveApp.createFile(attachmentBlob);
DriveApp.getFoldersByName(folderName).next().addFile(file);
}
}
}
var c = 0;
var f2s = DriveApp.getFoldersByName(folderName).next().getFiles();
while (f2s.hasNext()) {
var f2 = f2s.next();
c++
}
if ( c > p) { GmailApp.sendEmail("me@me.com", " avviso "+folderName, "Un nuovo file è stato aggiunto")};
}
【问题讨论】:
标签: javascript gmail