Automatizzare invio documento tramite mail

di il
8 risposte

Automatizzare invio documento tramite mail

Salve a tutti. Avrei bisogno di un consiglio su quello che vorrei realizzare.
Dovrei inviare un documento via mail a moltissimi contatti. Solo che al documento deve essere cambiata l'intestazione per ogni contatto.
Inoltre il documento deve essere inviato in formato pdf, quindi convertito prima di essere inviato.
Avrei pensato:
- tabella dove inserire tutti i contatti a cui inviare il documento;
- maschera semplice per inserire i dati nella tabella;
- report in cui inserire il documento da inviare, con un campo controllato per cambiare di volta in volta l'intestazione;
ora viene il bello
Come posso fare per convertire il report in pdf e poi inviarlo via mail?

Grazie anticipatamente a tutti

8 Risposte

  • Re: Automatizzare invio documento tramite mail

    Non conosco bene access ma quello che chiedi sarebbe relativamente facile in .net ,esistono delle librerie opensource per convertire da testo a pdf ,per inviarlo via email potresti usare queste due classi MailMessage ed SmtpClient ,per scrivere il programma ti basterebbero o visual studio community o sharpdevelop, entrambi gratuiti
  • Re: Automatizzare invio documento tramite mail

    Ma che librerie esterne... Access consente di stampare direttamente in PDF ed anche di inviare mail.
    A complicarsi la vita con codice esterno si fa sempre a tempo...

    Quindi serve un ciclo per tutti gli utenti aprendo un recordset sulla tabella e per ogni Record stampare il file pdf ed allegato alla mail da inviare.

    Alcune volte si potrebbe imparare a fare una ricerca nel Forum
    https://www.iprogrammatori.it/forum-programmazione/access/inviare-report-via-pdf-t15906.html
  • Re: Automatizzare invio documento tramite mail

    Grazie mille Alex, ma non essendo un utente espertissimo di access, non sapevo quale chiave di ricerca usare... Mi spiegheresti meglio cosa significa aprire un recordset per tutti gli utenti?
  • Re: Automatizzare invio documento tramite mail

    Deve essere chiaro che servono un minimo di basi per affrontare i problemi tecnici, anche per interfacciarsi al forum... altrimenti per ogni domanda servono 4 lezioni di base...

    Puoi partire da qui:
    https://msdn.microsoft.com/en-us/library/office/ff820966.aspx
  • Re: Automatizzare invio documento tramite mail

    @Alex ha scritto:


    Deve essere chiaro che servono un minimo di basi per affrontare i problemi tecnici, anche per interfacciarsi al forum... altrimenti per ogni domanda servono 4 lezioni di base...

    Puoi partire da qui:
    https://msdn.microsoft.com/en-us/library/office/ff820966.aspx

    Grazie mille, utilissimo!
  • Re: Automatizzare invio documento tramite mail

    Aggiornamento... studiando e documentandomi grazie ai vostri consigli, ho creato una maschera con un pulsante "Salva" che mi salva in pdf i file, rinominandoli in base al campo da me scelto come segue:

    Dim Nomefile, sCampo As String
    sCampo = Format([Forms]![Invio_documento]![Campo])
    sNome = Format([Forms]![Invio_documento]![Nome])
    Nomefile = sNome & " " & sCampo
    DoCmd.OutputTo acOutputReport, "Report", acFormatPDF, "C:\users\" & Nomefile & ".pdf", False

    Tutto funziona regolarmente.

    Poi ho inserito un altro pulsante per inviare la mail allegando il report in pdf:

    sMail = ([Forms]![Invio_documento]![Mail])

    DoCmd.SendObject acSendReport, "Report", acFormatPDF, sMail, , , "Oggetto", "Testo della mail", True

    e qui ho qualche problemuccio: si apre la finestra di outlook, allega il report in pdf, inserisce l'oggetto, ma nel campo del destinatario mi inserisce la mail in questo modo: #mailto:# che chiaramente outlook non riconosce come indirizzo. Non sono riuscito a capire come mai. E poi, quando chiudo la mai mi appare un errore e finestra di debug selezionando in giallo tutta la riga del Docmd....

    Inoltre avrei bisogno di un altro consiglio: Oltre al report che cambia di volta in volta, dovrei allegare un altro pdf che è sempre lo stesso per tutte le mail, ma mi pare di aver capito che non sia possibile...
    Grazie
  • Re: Automatizzare invio documento tramite mail

    Questo accade in quanto hai definito il campo MAIL come Hyperlinnk e non come TEsto semplice... il che è un grosso errore di inesperienza...!
    Ti suggerisco di modificare il campo da Hyperlink a Testo, e di eseguire una QUery UPDATE che taglia il testo dopo il primo [#]... così risolvi tutto
    
    UPDATE NomeTabella
    SET  [Mail]=Mid$([Mail],1,Instr([Mail],'#')-1)
    Incolla il predicato in QBE(SQL) non nella Struttura, altrimenti se componi la Query da struttura devi sostituire le VIRGOLE con PUNTOVIRGOLA.
  • Re: Automatizzare invio documento tramite mail

    Fatto, grazie; mi è bastato cambiare la definizione del campo in testo, e il problema dell'indirizzo mail si è risolto. Quindi, la query non mi è servita.
    Ora ho notato però che la mail non viene inviata, ma si apre solo la finestra di outlook pronta per l'invio. Ma la cosa strana è che se vado nel client di posta certificata, la mai non risulta tra quelle inviate.
    Poi, quanto al secondo quesito che avevo proposto? (il secondo file pdf da allegare e identico per ogni mail)
Devi accedere o registrarti per scrivere nel forum
8 risposte