VBA Invia e-mail da Excel tramite Gmail

Questo tutorial ti mostrerà come inviare e-mail da Excel tramite Gmail utilizzando VBA.

Aggiunta del riferimento Microsoft CDO

Per consentire a Excel di inviare e-mail tramite Gmail, devi prima aggiungere la libreria di riferimento CDO al tuo progetto Excel.

Nell'editor VBA, fai clic su Strumenti, Riferimenti.

Cerca il riferimento Microsoft CDO e fai clic su OK.

Invio di un'e-mail tramite Gmail

Per inviare un'e-mail da Excel tramite Gmail devi prima dichiarare un oggetto CDO (Dim gMail come CDO.Message).

In secondo luogo, dovresti configurare l'autenticazione SSL per il tuo messaggio nel tuo codice. Ciò significa che è necessario impostare il server SMTP e i dettagli della porta affinché la tua e-mail venga inviata correttamente, nonché impostare il nome utente e la password.

Nel frammento di codice di seguito, questo è ciò di cui avresti bisogno all'inizio della tua funzione Excel. Hai bisogno di un destinatario e-mail (strTo) e di un oggetto (strSubject), ma il CC e il corpo dell'e-mail possono essere variabili facoltative.

12345678910111213141516171819202122232425262728 Funzione CreateEmail(strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String)'crea un oggetto CDODim gMail As CDO.MessageImposta gMail = Nuovo messaggio CDO'Abilita autenticazione SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True'Rendi abilitata l'autenticazione SMTP=true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Imposta il server SMTP e i dettagli della portagMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Imposta qui il tuo nome utente e password per il tuo account GmailgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "**********"'Aggiorna i campi di configurazionegMail.Configuration.Fields.Update

Fatto ciò, puoi creare la tua email e completare la funzione.

123456789 'imposta le proprietà dell'email e il file da inviareCon gMail .Subject = "Scrivi oggetto qui".From = "[email protected]".To = strTo.TextBody = strBodyTermina con'per inviare la postagMail.InviaFine funzione

Puoi quindi chiamare la tua funzione con il seguente codice

1234567 Sub SendEmail'crea il corpo dell'e-mailDim strText come stringastrText = "Buongiorno. Spero che tu stia bene - questa è una email di prova"'popola gli argomenti della funzione - lascia vuoto CC quindi metti una virgola come segnapostoCreateEmail("[email protected]", "Email di prova", , strText)Fine sotto

Invio di una cartella di lavoro tramite Gmail

Per inviare una cartella di lavoro come allegato tramite GMail, puoi creare una funzione molto simile a quella sopra con alcune aggiunte.

È necessario aggiungere il codice per selezionare la cartella di lavoro, quindi è necessario allegare il file selezionato all'e-mail.

Useremo Microsoft Office FileDialog comando per selezionare il file da inviare, quindi utilizzare il comando Aggiungi allegato proprietà dell'e-mail per aggiungere il file come allegato.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Funzione SendWorkbook (strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) As BooleanIn caso di errore vai a eh:'crea un oggetto CDODim gMail As CDO.MessageImposta gMail = Nuovo messaggio CDO'Abilita autenticazione SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True'Rendi abilitata l'autenticazione SMTP=true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Imposta il server SMTP e i dettagli della portagMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Imposta qui il tuo nome utente e password per il tuo account GmailgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "**********"'Aggiorna i campi di configurazionegMail.Configuration.Fields.Update'selezionare il file da inviare con la finestra di dialogo file MicrosoftDim strFileToSend As StringDim dlgFile As FileDialogDim strItem As VariantDim nDlgResult As LongImposta dlgFile = Application.FileDialog(msoFileDialogFilePicker)'filtro solo per file excel e csvdlgFile.Filters.Aggiungi "File Excel", "*.csv; *.xls; *.xlsx; *.xlsm"nDlgResult = dlgFile.ShowSe nDlgResult = -1 AlloraSe dlgFile.SelectedItems.Count > 0 AlloraPer ogni strItem in dlgFile.SelectedItemsstrFileToSend = strItemArticolo successivoFinisci seFinisci se'imposta le proprietà dell'email e il file da inviareCon gMail.Subject = "Scrivi oggetto qui".From = "[email protected]".To = strTo.TextBody = strBody'aggiungi il file selezionato come allegato.AddAttachment strFileToSendTermina con'per inviare la postagMail.InviaSendWorkbook= VeroEsci dalla funzioneehi:SendWorkbook = FalseFine funzione

Se la porta di configurazione 25 non funziona, potresti ricevere un errore - "Il trasporto non è riuscito a connettersi al server" Cambia la porta in 25 e riprova.

La funzione sopra può essere chiamata utilizzando la procedura seguente.

123456789101112131415 Sub SendMail()Dim strTo As StringDim strSubject As StringDim strBody As String'popola variabilistrTo = "[email protected]"strSubject = "Trova il file finanziario allegato"strBody = "del testo va qui per il corpo dell'e-mail"'chiama la funzione per inviare l'e-mailSe SendWorkbook(strTo, strSubject, , strBody) = true alloraMsgbox "Creazione email riuscita"AltroMsgbox "Creazione email fallita!"Finisci seFine sottotitolo

Ti verrà chiesto di selezionare il file che desideri inviare. Questo codice è limitato ai file Excel poiché il filtro è "*.csv; *.xls; *.xlsx; *.xlsm” - tuttavia, puoi utilizzare questo codice anche all'interno di Word e modificare il filtro di conseguenza.

Seleziona il file e fai clic su Apri. L'esecuzione del codice potrebbe richiedere del tempo: se la posta viene inviata correttamente, riceverai il seguente messaggio.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave