Google Apps Komut Dosyasındaki Ekler
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
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