Dunque, ho fatto un po' di prove e sembra funzionare bene:
- ho avviato Outlook Desktop di Office
- poi sono andato su FILE e AGGIUNGI NUOVO ACCOUNT
- ho indicato il mio indirizzo di Gmail
- a questo punto ho predisposto Outlook a ricevere e inviare posta con account Gmail
- infine ho utilizzato questo codice per la spedizione:
Option Explicit
Sub inviaMail()
Dim outApp As Object
Dim outMail As Object
Dim account As Object
On Error GoTo ErrHandler
If Trim(Range("B1").Value) = "" Then
MsgBox "Inserire destinatario in B1.", vbExclamation
Exit Sub
End If
On Error Resume Next
Set outApp = GetObject(, "Outlook.Application")
On Error GoTo ErrHandler
If outApp Is Nothing Then
Set outApp = CreateObject("Outlook.Application")
End If
Set outMail = outApp.CreateItem(0)
For Each account In outApp.Session.Accounts
If LCase(account.SmtpAddress) = LCase("Tuo_IndirizzoGmail") Then
Set outMail.SendUsingAccount = account
Exit For
End If
Next account
With outMail
.To = Range("B1").Value
.Subject = Range("B2").Value
.Body = Range("B3").Value
.Send
End With
MsgBox "Mail spedita.", vbInformation
Cleanup:
Set outMail = Nothing
Set account = Nothing
Set outApp = Nothing
Exit Sub
ErrHandler:
MsgBox "Errore: " & Err.Description, vbCritical
Resume Cleanup
End Sub
Il codice prevede che l'indirizzo a cui spedire sia scritto in "B1", l'oggetto della mail in "B2" e il corpo della mail in "B3".
Poi devi indicare qui il tuo indirizzo Gmail da cui partono le mail:
If LCase(account.SmtpAddress) = LCase("Tuo_IndirizzoGmail") Then
Quindi il codice fa una scansione per verificare se l'oggetto Outlook è già istanziato. Qualora non lo fosse lo crea. Poi scansiona tra gli account registrati in Outlook quello indicato per la spedizione. A questo punto predispone la mail e la spedisce. Mancherebbe la parte per gli allegati...ma quella è una cosa a parte.
A me funziona senza problemi. Ho fatto vari test e le mail mi sono tutte arrivate.