Ti basterà indicare solo la cartella in Google Drive
Email con Allegati PDF, JPG e XSLX in Automatico
In questo video mostro come sia possibile, con il semplice Servizio MailApp di Google Apps Script, allegare file di formati diversi ad una email con un click.
Nei miei video precedenti ho allegato in modo manuale e automatico file di tipo PDF, in questo video vedremo come far riconoscere al sistema in modo del tutto autonomo tutti i tipi di file, come ad esempio immagini JPG o file Excel in XSLX.
Non hai bisogno di specificare i file a mano, ti basterà indicare solo la cartella in Google Drive dove i tuoi file sono contenuti, al resto penserà tutto il codice JavaScript di Google!
Il codice riconoscerà in modo automatico i MimeType dei file da allegare in un'email di Google. Con questo metodo è possibile creare un sistema che riconosca in modo autonomo qualsiasi tipo di file presente in una cartella di Google Drive, per allegarlo a Gmail senza generare mai alcun errore e potrai utilizzare questa funzione per qualsiasi tuo progetto!
Parte 1/2:
Parte 2/2:
Lasciami un commento per qualsiasi dubbio, curiosità o suggerimento. Ricordati inoltre di ISCRIVERTI AL MIO CANALE, se non l'hai già fatto, per rimanere aggiornato sull'uscita dei miei prossimi video!
Buonasera, ho copiato esempio 3 per invio e-mail in automatico con allegato file pdf. Lo script funziona senza nessun errore, ma la e-mail è priva dell'allegato pdf. Mi potrebbe consigliare per favore?
Ciao Rocco,
probabilmente la cartella che hai indicato tramite il suo ID non contiene il file in questione. Prova a verificare se l'ID è quello corretto.
ho queste due funzioni che vorrei unire in un unico file, ma non funzionano, mi potresti aiutare?
function inviaemail() {
var folder = DriveApp.getFolderById('1xxxxxxxxxxxxxxxxxxxxxx');
var files = folder.getFiles();
var arr = [];
Logger.log ("inviaemail");
while (files.hasNext()) {
arr.push(files.next().getAs(MimeType.PDF));
}
MailApp.sendEmail('xxxxxx@gmail.com', 'xxxxxxxx', 'Buongiorno, in allegato xxxxxxx Cordiali Saluti.', {
name: 'xxxxxxxx',
attachments: arr
})
e seconda funzione:
function myFunction() {
var folder = DriveApp.getFolderById('1xxxxxxxxxxxxxxxxxxxxxx');
var files = folder.getFiles()
while(files.hasNext()){
files.next().setTrashed(true)
}
come devo fare per unirle e farle funzionare in sequenza in in unico file. Grazie mille per il tuo prezioso aiuto.
Ciao Rocco, cosa significa che non funzionano? Che errore ricevi?
Per unirle dipende da quello che vuoi fare, ad ogni modo potrebbe essere utile che tu condividessi anche la funzione che stai provando a rendere unica per capire dove può stare il problema.
Questo è il file, che segue:
function inviaemail() {
var folder = DriveApp.getFolderById('1xxxxxxxxxxxxxxxxxxxxxx');
var files = folder.getFiles();
var arr = [];
Logger.log ("inviaemail");
while (files.hasNext()) {
arr.push(files.next().getAs(MimeType.PDF));
}
MailApp.sendEmail('xxxxxx@gmail.com', 'xxxxxxxx', 'Buongiorno, in allegato xxxxxxx Cordiali Saluti.', {
name: 'xxxxxxxx',
attachments: arr
})
function myFunction() {
var folder = DriveApp.getFolderById('1xxxxxxxxxxxxxxxxxxxxxx');
var files = folder.getFiles()
while(files.hasNext()){
files.next().setTrashed(true)
}
se eseguo questi file in modo separato, una funzione per ogni file script, funzionano.
unite le funzioni in un unico file, funziona solo la prima funzione di invio email, ma non la cancellazione dei file.
Lo scopo è in unico file inserire due funzioni: la prima invia dei file pdf in allegato (grazie ai tuoi esempi), la seconda funzione dovrebbe cancellare i file in drive dopo che sono stati inviati in allegato. quindi avrei bisogno, secondo me, di eseguire queste due funzioni in sequenza: ho letto il tuo articolo "promise", ma non so come si fa, sempre che sia la sluzione giusta usare promise, magari hai una soluzione più semplice. grazie mille per la risposta e l'aiuto. Ti ringrazio molto.
Prova ad inserire myFunction() come ultima istruzione della prima funzione.
Questo è l'errore che viene:
Errore di sintassi: SyntaxError: Unexpected token 'function' linea: 13 file: Senza titolo.gs
è al posto giusto, per favore puoi indicare a me la giusta posizione? Grazie mille
function inviaemail() {
var folder = DriveApp.getFolderById('1xxxxxxxxxxxxxxxxxxxxxx');
var files = folder.getFiles();
var arr = [];
Logger.log ("inviaemail");
while (files.hasNext()) {
arr.push(files.next().getAs(MimeType.PDF));
}
MailApp.sendEmail('xxxxxx@gmail.com', 'xxxxxxxx', 'Buongiorno, in allegato xxxxxxx Cordiali Saluti.', {
name: 'xxxxxxxx',
attachments: arr
function myFunction() {
Errore di sintassi: SyntaxError: Unexpected token 'function' linea: 13 file: Senza titolo.gs
})
function myFunction() {
var folder = DriveApp.getFolderById('1xxxxxxxxxxxxxxxxxxxxxx');
var files = folder.getFiles()
while(files.hasNext()){
files.next().setTrashed(true)
}
Devi inserire esattamente myFunction() come ultima istruzione, non tutta la funzione. Non puoi mettere una funzione dentro un'altra funzione, ma puoi richiamarne una da dentro un'altra.