【发布时间】:2018-05-11 02:40:06
【问题描述】:
我似乎找不到任何可以完成我想要做的事情的东西,而且我对 JavaScript 的熟练程度不如我想的那样,所以请多多包涵... 正如我在标题中提到的,我正在用谷歌应用脚本编写这个......
如果我有类似这样的代码:
function getMails() {
// get the first 5 threads
var threads = GmailApp.getInboxThreads(0, 5);
// get all the messages for the threads selected
var messages = GmailApp.getMessagesForThreads(threads);
// iterate through the threads
// ('messages' being the first message of the thread)
for (var i = 0; i < messages.length; i++) {
// then iterate through every message of the thread
var blobs = [];
for (var j = 0; j < messages[i].length; j++) {
// create a blob for every message
var blob = Utilities.newBlob(messages[i][j].getRawContent(),
'text/plain',
'message' + j + '.eml');
// push the blob into the array
blobs.push(blob);
}
// here's where I think I'm having trouble finding a solution
// and I do not want to zip all the blobbed messages into 1
MailApp.sendEmail(Session.getActiveUser().getEmail(),
"thread report: [" + messages[i][0].getSubject() + "]",
"attached message as text/plain", {
name: 'Automatic Emailer Script',
attachments: blobs
});
}
}
谁能给我一个指针,告诉我如何为每个线程的可变数量的消息完成这最后一步。
【问题讨论】:
-
“似乎不起作用”是什么意思?是否发送电子邮件?附有_any_thing 吗?如果是这样,它们是纯文本文件吗?您需要添加一些细节。
-
我们可以向您询问
content的Utilities.newBlob(content, 'text/plain', 'message' + j + '.eml')吗? -
@Robi GoogleAppScript 有一个记录器功能 - 尝试启用并使用它,这样您就可以获得更多关于哪些不工作的信息
-
在您的脚本中,
blobs的长度不断增加。如果您想为每封邮件使用每个 blob,请将blobs = []放在for (var j = 0; j < messages[i].length; j++) {之前的for (var i = 0; i < messages.length; i++) {中。 -
@duhaime:我一直在使用 Logger.log 功能,但无法弄清楚为什么它对我不起作用,但感谢您的所有 cmets 和见解以及一点点经过更多的思考和尝试,我终于让它按预期工作。谢谢大家!