我正在尝试通过Google Apps脚本获取gmail中线程最新消息的最新附件。这是我所拥有的:
//gets first(latest) message with set label
var label = GmailApp.getUserLabelByName('SpecificLabel');
var threads = label.getThreads();
var message = threads[0].getMessages();
//message.reverse
var attachment = message[threads[0].getMessageCount()-1].getAttachments()[0];
var ss = SpreadsheetApp.getActive();
var summarySht = ss.getSheetByName('Summary');
var dbPullSht = ss.getSheetByName('Database Pull');
Browser.msgBox(attachment.getContentType());
// Is the attachment a CSV file
if (attachment.getContentType() === 'text/csv') {
//do something
}
我尝试用我注释掉的代码来反转消息。那似乎没有用。当前消息框将指出附件是图像。我认为它正在访问正确线程的正确消息,但它正在提取发件人签名中的图像。
这是它的工作方式。我将xls文件发送给某人。他们发回CSV文件。我需要那个CSV文件。
答案 0 :(得分:0)
我创建了一个for循环来获取具有正确名称的附件。 这假定文件名将相同。
//gets first(latest) message with set label
var label = GmailApp.getUserLabelByName('SpecificLabel');
var threads = label.getThreads(0, 1);
var message = threads[0].getMessages();
message = message[message.length - 1];
var attachments = message.getAttachments();
for (var i = 0; i < attachments.length; i++) {
if (attachments[i].getName() === 'filename.csv') {
var attachment = attachments[i];
}
}
var ss = SpreadsheetApp.getActive();
var summarySht = ss.getSheetByName('Summary');
var dbPullSht = ss.getSheetByName('Database Pull');
Browser.msgBox(attachment.getContentType());
Browser.msgBox(attachment.getName());
// Does the attachment name match?
if (attachment.getName() === 'filename.csv') {
//do something
}
在继续执行代码之前,这还将检查文件名而不是文件类型。