0

私は決してプログラマーではありませんが、添付ファイル付きのメールを探し、検索し、添付ファイルを Google ドライブに保存し、件名をスプレッドシートに記録するスクリプトをまとめることができました。これを行う部分は次のとおりです。

function sendToGDrive() {    

var sheet   = SpreadsheetApp.getActiveSheet();
var gLabel  = sheet.getRange("G1:G1").getValues();
var gFolder = sheet.getRange("H1:H1").getValues();
var row = SpreadsheetApp.getActiveSpreadsheet().getLastRow() + 1;

var threads = GmailApp.search("label:" + gLabel, 0, 5);  
var folder  = DocsList.getFolder(gFolder);

for (var x=0; x<threads.length; x++) {

var messages = threads[x].getMessages();

for (var y=0; y<messages.length; y++) {

var att = messages[y].getAttachments();

 for (var z=0; z<att.length; z++) {
    try {
      var file = folder.createFile(att[z]);
      sheet.getRange(row,1).setValue(Utilities.formatDate(messages[y].getDate(), "PST",        "yyyy-MM-dd"));
      sheet.getRange(row,2).setValue(messages[y].getSubject());                                      
      var id = "https://mail.google.com/mail/?shva=1#all/" + messages[y].getId();
      sheet.getRange(row,3).setFormula('=hyperlink("' + id + '", "View email")');
      var url = file.getUrl();
      sheet.getRange(row,4).setFormula('=hyperlink("' + url + '", "View image")');
      sheet.getRange(row,5).setValue(file.getName());
      row++;
      Utilities.sleep(1000);
    }

私が理解できないのは、このスクリプトを拡張して、添付ファイルのないメールも検索し、上記のすべてを実行する方法です。if/or ステートメントが必要になると思いますが、それを機能させる方法がわかりません。助けてください。

4

1 に答える 1

1

後:

var att = messages[y].getAttachments();

あなたは次のようなものが欲しい

if(att.length==0) {
   // no attachments code
} else {
   // attachments code
   for (var z=0; z<att.length; z++) {
   ......

}

Eddy - Web アプリケーションを構築するスプレッドシート フォーラム

于 2013-11-07T23:49:19.740 に答える