Google Apps Komut Dosyasındaki Ekler

Jan 06 2021

E-postayla göndermek için Google Apps Komut Dosyasına birden fazla ek koyduğumda bazı sorunlar yaşıyorum.

Kodun bunu yapan kısmı

      reportPDF = doc.getAs('application/pdf')
      reportPDF.setName('Attachment1 - '+ rows[0][0] + ".pdf");
      
      var file1 = destinationFolder.createFile(reportPDF);  
      var file2 = DriveApp.getFilesByName("test.pdf");

      DriveApp.getFileById(doc.getId()).setTrashed(true);
      
      emails.forEach(function(email) {
      MailApp.sendEmail(email, "Attachments  - " + rows[0][0], "Hello!", {
                        name: 'Good Practices',
                        attachments: [file.getAs(MimeType.PDF), file2]

    });

Ancak bunu çalıştırdığımda şu sorunu yaşıyorum:

İstisna: Geçersiz bağımsız değişken: ekler (satır 151, dosya "E-posta")

Doldurulmuş ve daha sonra PDF'ye dönüştürülmüş bir .doc dosyam1 ve zaten PDF olan başka bir dosyam2 var.

Sadece dosya1 ile çalıştırdığımda, e-postayı gönderebilirim, ancak dosya1 ve dosya2 ile denediğimde bu hatayı alıyorum. Neler olabileceğini bilen var mı?

Burada yığın halinde okuduğum birçok başka öneri çalıştırdım, ancak o zaman hiç kimse işe yaramadı.

Yanıtlar

1 Marios Jan 06 2021 at 23:09

Açıklama:

Sorun olduğunu file2 değil bir tipi FILE ama bir nesne FileIterator sınıfında.

Öte yandan, file1 bir bir tipi FILE ve düzgün çalıştığını bu yüzden.

E-postayı göndermeden önce dosya adının var olup olmadığını kontrol etmek de iyi bir uygulamadır.

Çözüm:

function myFunction() {
  
  reportPDF = doc.getAs('application/pdf')
  reportPDF.setName('Attachment1 - '+ rows[0][0] + ".pdf");

  var file1 = destinationFolder.createFile(reportPDF);  // this is a file
  var folder = DriveApp.getFolderById(folderId); // put here the id of the folder
  var file2 = folder.getFilesByName("test.pdf"); // this is a file iterator

  DriveApp.getFileById(doc.getId()).setTrashed(true);
  
  if (file2.hasNext() ) {
      MailApp.sendEmail(emailAddress, "Attachments  - " + rows[0][0], "Hello!",{
      name: 'Good Practices',                  
      attachments: 
          [
           file1.getAs(MimeType.PDF),
           file2.next().getAs(MimeType.PDF)
          ]    
  })};  
}

Referanslar:

  • getFilesByName (ad)
  • dosya oluştur