Google Apps स्क्रिप्ट पर अनुलग्नक
जब मुझे 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 के साथ प्रयास करता हूं, तो मुझे यह त्रुटि होती है। क्या कोई जानता है कि क्या हो सकता है?
मैं बहुत से अन्य सुझावों को चलाता हूं, जिन्हें मैं यहां स्टैक में पढ़ता हूं, लेकिन तब किसी ने भी काम नहीं किया।
जवाब
स्पष्टीकरण:
मुद्दा यह है कि है 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 (नाम)
- बनाएँ