【发布时间】:2020-02-21 18:29:55
【问题描述】:
我有两个代码,第一个有效并显示所有附件,第二个仅显示第一个。 “getAttachmentAndMessage”被我的几个脚本使用,所以我需要将它放在一个单独的函数中,以免重复我的配置。请帮忙。
//this function get me all attachments
//this function is just an example of how I built my code below;
function searchEmailsData(){
var search = GmailApp.search('in:inbox newer_than:3d');
var threads = GmailApp.getMessagesForThreads(search);
for (var i = 0 ; i < threads.length; i++) {
var thread = threads[i];
for (var j = 0; j < thread.length; j++) {
var message = thread[j];
var attachments = message.getAttachments();
for (var k = 0; k < attachments.length; k++) {
var attachment = attachments[k];
Logger.log(attachment.getName());
}
}
}
}
//this functions get me only first attachment but I need all of them;
function searchEmailsData2(){
var search = GmailApp.search('in:inbox newer_than:3d');
var threads = GmailApp.getMessagesForThreads(search);
for (var i = 0 ; i < threads.length; i++) {
var thread = threads[i];
var obj = getAttachmentAndMessage(thread);
Logger.log(obj[1].getName())
}
}
function getAttachmentAndMessage(thread){
for (var j = 0; j < thread.length; j++) {
var message = thread[j];
var attachments = message.getAttachments();
for (var k = 0; k < attachments.length; k++) {
var attachment = attachments[k];
var obj = [message, attachment];
return obj;
}
}
}
【问题讨论】:
-
这里的问题不是很清楚。如果您添加对哪些问题无法正常工作、当前结果是什么以及您的预期结果的解释,将会有所帮助。
-
您的
getAttachmentAndMessage函数只返回一个附件——它找到的第一个附件。所以...不要那样做。 -
正如我所说的,我的 getAttachmentAndMessage 函数只返回单个附件,我需要的是返回所有附件,如函数 searchEmailsData
-
@vipmaciej 您正在将
thread传递给您的getAttachmentAndMessage()函数。你期望它返回什么?线程的第一条消息及其所有附件?或者更确切地说,它包含的每条消息以及它们每个包含的每个附件?干杯 -
我希望线程中的每条消息以及每个消息中包含的每个附件。就像在函数 searchEmailsData() 中一样
标签: google-apps-script gmail-api