AS
VBA per Microsoft Excel
Invia email di Gmail
Step 1: Attiva il riferimento a Microsoft CDO
Apri l'editor di Visual Basic dal menù Sviluppo. Menù Strumenti -> Riferimenti.... Spunta Microsoft CDO.
Step 2: Configura Gmail
Nella pagina del tuo account di Google (https://myaccount.google.com/security), sezione Sicurezza, consenti l'accesso alle "app meno sicure".
Step 3: Programma Excel con VBA
Sub SendGmail()
On Error GoTo Err
Dim Mail As CDO.Message
Set Mail = New CDO.Message
With Mail
Dim attachment1 As String
attachment1 = Range("myAttach1").Value
'dove Range("myAttach1") contiene il percorso al primo allegato
Dim attachment2 As String
attachment1 = Range("myAttach2").Value
'dove Range("myAttach2") contiene il percorso al secondo allegato
'...
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ilmioindirizzo@gmail.com"
'inserire il proprio indirizzo email
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "123"
'inserire la password del proprio account Google
.Configuration.Fields.Update
.Subject = Range("mySubj").Value
'dove Range("mySubj") contiene l'oggetto della mail
.From = "ilmioindirizzo@gmail.com"
.To = Range("myRecipients").Value
'dove Range("myRecipients") contiene l'elenco dei destinatari, separato per virgola o punto e virgola
.CC = ""
.BCC = ""
.textbody = Range("myBody").Value
'dove Range("myBody") contiene il testo della mail
If attachment1 <> "" Then
.AddAttachment attachment1
End If
If attachment2 <> "" Then
.AddAttachment attachment2
End If
'...
.Send
End With
Set Mail = Nothing
MsgBox ("Mail inviata")
Exit Sub
Err:
MsgBox (Err.Description)
Exit Sub
End Sub
Metto liberamente a disposizione per il download un file nel quale ho implementato quanto sopra. Qui di fianco uno snapshot.
Scaricando il seguente file accettate che viene rilasciato così com'è senza alcun tipo di garanzia.