JavaScript, HTML, CSS e... !
8 commenti

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!

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

8 Commenti

  1. Tuesday, November 14, 2023 alle ore 17:46 Rocco

    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?

    Rispondi a questo commento
    • Tuesday, November 14, 2023 alle ore 19:23 Michele PisaniAutore

      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.

      Rispondi a questo commento
  2. Monday, November 20, 2023 alle ore 16:12 Rocco

    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.

    Rispondi a questo commento
    • Monday, November 20, 2023 alle ore 16:55 Michele PisaniAutore

      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.

      Rispondi a questo commento
      • Monday, November 20, 2023 alle ore 17:18 Rocco

        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.

      • Monday, November 20, 2023 alle ore 18:24 Michele PisaniAutore

        Prova ad inserire myFunction() come ultima istruzione della prima funzione.

      • Tuesday, November 21, 2023 alle ore 01:14 Rocco

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

      • Tuesday, November 21, 2023 alle ore 06:34 Michele PisaniAutore

        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.

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web