THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

di il
7 risposte

THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

Buongiorno,

vi espongo il mio problema.

Avevo già creato un codice VBA per l'invio di e-mail da access con Outlook. Ultimamente Outlook mi dà problemi con la configurazione di account Google, quindi ho dovuto installare Thunderbird.

Cercando sul web sono riuscita a modificare il codice, riesco ad aprire l'email con Thunderbird, allegare il file ma non riesco a creare l'oggetto e-mail che possa prendere i dati da campi della tabella access. Al momento il codice crea l'email con sola lettura del testo quindi con digitazione manuale dell'indirizzo e-mail.

Posto di seguito il codice.

Grazie a chi potrà darmi una mano.

Grazz

Private Sub Comando58_Click()
DoCmd.OpenReport "Dichiarazione", acViewPreview, , "CodiceAlunno=" & Me!CodiceAlunno
DoCmd.OutputTo acOutputReport, "Dichiarazione", acFormatPDF, "\\Rete\docenti\\1.Ditta\ANNO 2024\RICEVUTE\N." & " " & [NDichiarazione] & " " & [Cognome] & " " & [Nome] & ".pdf"
DoCmd.Close
Dim percorsoTB As String
Dim thund As String
percorsoTB = "C:\Program Files\Mozilla Thunderbird\thunderbird.exe "
thund = percorsoTB & _
"-compose " & """" & _
"to= 'indirizzo' " & _ ' vorrei invece che prendesse il campo Me!email_studente 
"subject= 'RICEVUTA'," & _
"attachment='\\Rete\docenti\\1.Ditta\ANNO 2024\RICEVUTE\N." & " " & [NDichiarazione] & " " & [Cognome] & " " & [Nome] & ".pdf'," & _
"body='Gentile Famiglia, inviamo la ricevuta di pagamento come da allegato., Grazie per la collaborazione, Cordiali saluti'," & """"


Call Shell(thund, vbNormalFocus)
       
 
End Sub

7 Risposte

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    Non credo proprio tu possa interagire in modo nativo con l'applicazione WEB, devi avere un componente che espone interfaccia COM, come era Outlook prima ma dalle nuove versioni non sarà più possibile, quindi dovrai usare altri componenti come CDO o MAPI, che hanno librerie che appunto puoi referenziare nel tuo codice ed usare in modo più semplice.

    Quì ad esempio trovi uno spunto per l'utilizzo di CDO:

    https://www.iprogrammatori.it/forum-programmazione/excel/invio-email-ad-un-server-smtp-t52568.html 

    Alternativa indipendente è BLAT che si può gestire da riga di comando... quindi crei la stringa e la lanci con la SHELL:

    http://www.blat.net/194/

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    Grazie Alex,

    do uno sguardo e spero di riuscirci.

    20/02/2025 - @Alex ha scritto:

    Non credo proprio tu possa interagire in modo nativo con l'applicazione WEB, devi avere un componente che espone interfaccia COM, come era Outlook prima ma dalle nuove versioni non sarà più possibile, quindi dovrai usare altri componenti come CDO o MAPI, che hanno librerie che appunto puoi referenziare nel tuo codice ed usare in modo più semplice.

    Quì ad esempio trovi uno spunto per l'utilizzo di CDO:

    https://www.iprogrammatori.it/forum-programmazione/excel/invio-email-ad-un-server-smtp-t52568.html 

    Alternativa indipendente è BLAT che si può gestire da riga di comando... quindi crei la stringa e la lanci con la SHELL:

    http://www.blat.net/194/

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    Non so se avevi gia' dato un'occhiata a questo:

    https://www.devhut.net/vba-send-e-mail-using-mozilla-thunderbird/

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    20/02/2025 - Mailman ha scritto:

    Non so se avevi gia' dato un'occhiata a questo:

    https://www.devhut.net/vba-send-e-mail-using-mozilla-thunderbird/

    Interessante non lo sapevo, ottimo.

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    20/02/2025 - Mailman ha scritto:

    Non so se avevi gia' dato un'occhiata a questo:

    https://www.devhut.net/vba-send-e-mail-using-mozilla-thunderbird/

    Buongiorno,

    grazie mille, porvo a leggere e soprattutto cercare di capire!

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    20/02/2025 - grazgrace ha scritto:

    Grazie Alex,

    do uno sguardo e spero di riuscirci.

    20/02/2025 - @Alex ha scritto:

    Non credo proprio tu possa interagire in modo nativo con l'applicazione WEB, devi avere un componente che espone interfaccia COM, come era Outlook prima ma dalle nuove versioni non sarà più possibile, quindi dovrai usare altri componenti come CDO o MAPI, che hanno librerie che appunto puoi referenziare nel tuo codice ed usare in modo più semplice.

    Quì ad esempio trovi uno spunto per l'utilizzo di CDO:

    https://www.iprogrammatori.it/forum-programmazione/excel/invio-email-ad-un-server-smtp-t52568.html 

    Alternativa indipendente è BLAT che si può gestire da riga di comando... quindi crei la stringa e la lanci con la SHELL:

    http://www.blat.net/194/

    Buongiorno Alex,

    ho provato ad inserire il codice per l'utilizzo di CDO,  il codice utilizzato è il seguente:

    Private Sub Comando58_Click()
    DoCmd.OpenReport "Dichiarazione", acViewPreview, , "CodiceAlunno=" & Me!CodiceAlunno
    DoCmd.OutputTo acOutputReport, "Dichiarazione", acFormatPDF, "\\RETE\\1.DITTA\ANNO 2024\RICEVUTE\N." & " " & [NDichiarazione] & " " & [Cognome] & " " & [Nome] & ".pdf"
    DoCmd.Close
    Dim myCDOMessage As Object
        Dim iConf
       
        Const cdoSendUsingPort = 2
        Const strSmartHost = "smtp.gmail.com"
        Set myCDOMessage = CreateObject("CDO.Message")
        With myCDOMessage
            Set iConf = .Configuration
            With iConf.Fields
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "MIA EMAIL GOOGLE"
                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "MIA PASSWORD"
                .Update
            End With
            .From = "MIA EMAIL"
            .To = Me!email_studente
            .Subject = "Prova invio e-mail"
            .HTMLBody = " Gentile Famiglia," & accapo & " inviamo la ricevuta di pagamento come da allegato." & accapo & " Grazie per la collaborazione." & accapo & "Cordiali saluti." & accapo & accapo & "PGS VIRGOLA SMILE"
    .AddAttachment "\\RETE\1.DITTA\ANNO 2024\RICEVUTE\N." & " " & [NDichiarazione] & " " & [Cognome] & " " & [Nome] & ".pdf"
            .Send
        End With
        Set myCDOMessage = Nothing
        Set iConf = Nothing
    End Sub

    Purtroppo mi compare questo errore

    ho provato a cercare in rete e mi sembra di aver capito che dal 2022 Google non dà più autorizzazioni a terzi.

    Ho controllato anche nella sezione sicurezza del mio account Google e risulta, nella sezione "I tuoi collegamenti con app e servizi di terze parti", il collegamento a Microsoft app & services. Non so se è possibile sbloccare in qualche modo questo problema.

    Adesso provo a cimentarmi leggendo lo spunto ricevuto da @Mailman

    Grazie

    Grazz

  • Re: THUNDERBIRD - INVIO EMAIL DA ACCESS A DIVERSI DESTINATARI

    21/02/2025 - grazgrace ha scritto:

    20/02/2025 - Mailman ha scritto:

    Non so se avevi gia' dato un'occhiata a questo:

    https://www.devhut.net/vba-send-e-mail-using-mozilla-thunderbird/

    Buongiorno,

    grazie mille, porvo a leggere e soprattutto cercare di capire!

    Eccomi! Ce l'ho fatta, sono riuscita a creare il codice per l'invio con Thunderbird. 

    Grazie per il supporto

    Grazz

    Private Sub TB_SendEmail_Click()
    DoCmd.OpenReport "Dichiarazione", acViewPreview, , "CodiceAlunno=" & Me!CodiceAlunno
    DoCmd.OutputTo acOutputReport, "Dichiarazione", acFormatPDF, "Percorso"
    DoCmd.Close
    Dim strCommand As String, strSubject As String, strBody As String
    Dim strFilePath As String
    '
    'strFilePath = Application.ActiveWorkbook.FullName
    strFilePath = "Percorso"
    strBody = Forms!Ricevute!Testo_Email
    '
    strCommand = "C:\Program Files\Mozilla Thunderbird\thunderbird.exe"   '<<< Applicazione Thunderbird
    'Segue la composizione della stringa di comando:
    strCommand = strCommand & " -compose " _
      & """" & "to='" & Me!email_studente.Value & "'," _
      & "cc=''" & "," _
      & "subject='" & "RICEVUTA N." & " " & Me!NDichiarazione.Value & " " & "ATTIVITA'" & " " & Me!Cognome.Value & " " & Me!Nome.Value & "'," _
      & "attachment='" & strFilePath & "'," _
      & "body='" & strBody & "', " & """"
    Call Shell(strCommand, vbNormalFocus)
    
    End Sub
Devi accedere o registrarti per scrivere nel forum
7 risposte