Google Apps स्क्रिप्ट पर अनुलग्नक

Jan 06 2021

जब मुझे Google Apps स्क्रिप्ट में ई-मेल भेजने के लिए एक अटैचमेंट रखा जाता है तो मुझे कुछ समस्या हो रही है।

कोड का भाग जो ऐसा करता है

      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]

    });

लेकिन जब मैं इसे चलाता हूं, तो मेरे पास यह मुद्दा है:

अपवाद: अमान्य तर्क: अटैचमेंट (लाइन 151, "ईमेल")

मेरे पास एक .doc फ़ाइल 1 है जो भरी हुई है और फिर पीडीएफ में परिवर्तित हो गई है और दूसरी फाइल 2 जो पहले से ही पीडीएफ है।

जब मैं सिर्फ file1 के साथ दौड़ता हूं, तो मैं ईमेल भेज सकता हूं, लेकिन जब मैं file1 और file2 के साथ प्रयास करता हूं, तो मुझे यह त्रुटि होती है। क्या कोई जानता है कि क्या हो सकता है?

मैं बहुत से अन्य सुझावों को चलाता हूं, जिन्हें मैं यहां स्टैक में पढ़ता हूं, लेकिन तब किसी ने भी काम नहीं किया।

जवाब

1 Marios Jan 06 2021 at 23:09

स्पष्टीकरण:

मुद्दा यह है कि है file2 नहीं है एक प्रकार की फ़ाइल लेकिन का एक उद्देश्य FileIterator वर्ग।

दूसरी ओर, file1 है एक प्रकार की फ़ाइल और यही कारण है कि यह ठीक से काम कर रहा है।

ईमेल भेजने से पहले यह पता करना भी एक अच्छा अभ्यास है कि फ़ाइल का नाम मौजूद है या नहीं।

समाधान:

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)
          ]    
  })};  
}

संदर्भ:

  • getFilesByName (नाम)
  • बनाएँ