Vba inviare e-mail con gmail
Spesso utilizziamo l’applicazione Microsoft Office Outlook per gestire le e-mail, i contatti ecc. da casa e dall’ufficio. È probabilmente uno dei modi più sicuri e protetti per gestire le e-mail riservate. Ha molte funzioni utili. In questo articolo vi mostrerò come inviare e-mail da Excel in modo dinamico utilizzando VBA e Outlook.
Per accedere ai metodi e alle proprietà di Outlook, dobbiamo creare un’istanza di Outlook in VBA. Per inizializzare l’applicazione di Outlook, utilizzeremo la funzione CreateObject() per creare un oggetto dell’applicazione.
Nota importante: prima di continuare a leggere questo articolo, è necessario configurare Microsoft Office Outlook nel computer. In caso contrario, l’esempio di codice che vi mostrerò non produrrà il risultato desiderato.
Per prima cosa, è necessario aggiungere un riferimento all’oggetto Outlook in VBA. Nel menu in alto trovate Strumenti e scegliete Riferimenti…. Nella finestra di dialogo Riferimenti, individuare la Libreria oggetti di Microsoft Outlook 16.0, fare clic sulla casella di controllo e premere OK.
Se tutto è corretto, verrà inviato un messaggio di posta elettronica con un oggetto e un messaggio che dice “Salve”. Come si può vedere, ho creato due oggetti (objOutlook e objEmail), uno per l’applicazione Outlook e l’altro per la creazione di e-mail.
Vba excel inviare e-mail outlook
Le macro di Excel possono fare molte delle stesse cose che fanno gli script VBA, senza bisogno di conoscenze di programmazione. VBA consente di implementare routine più avanzate, come la creazione di un report su un foglio di calcolo con tutte le informazioni del PC.
Forse avete dei collaboratori che aggiornano documenti o fogli di calcolo ogni settimana e vorreste ricevere una notifica via e-mail quando lo fanno. Oppure avete un foglio di calcolo di contatti e volete inviare un’e-mail a tutti loro contemporaneamente.
Probabilmente state pensando che creare uno script per la trasmissione di e-mail da Excel sia complicato. Non è affatto così. La tecnica descritta in questo articolo si avvale di una funzione disponibile in Excel VBA da molto tempo, Collaboration Data Objects (CDO).
CDO è un componente di messaggistica utilizzato in Windows fin dalle prime generazioni del sistema operativo. Prima si chiamava CDONTS, poi, con l’avvento di Windows 2000 e XP, è stato sostituito da “CDO per Windows 2000”. Questo componente è già incluso nell’installazione VBA di Microsoft Word o Excel ed è pronto all’uso.
Excel vba invia intervallo nel corpo del messaggio di posta elettronica
Questo errore significa che il server DNS non è in grado di risolvere il server SMTP; è necessario verificare se l’indirizzo del server inserito è corretto. Se l’indirizzo del server è corretto, è necessario verificare se l’impostazione del server DNS è corretta.
La porta 25 è la porta predefinita del server SMTP per ricevere le e-mail. Tuttavia, alcuni ISP bloccano la porta 25 in uscita per impedire agli utenti di inviare e-mail direttamente ad altri server SMTP. Pertanto, molti provider di posta elettronica forniscono anche una porta alternativa 587 per ricevere le e-mail da tali utenti. La porta 465 è la porta comunemente utilizzata per ricevere le e-mail attraverso una connessione SSL implicita. Se si usa telnet per testare la porta 465, non restituisce il messaggio “220…”, perché richiede una stretta di mano SSL. Ma se la connessione è corretta, telnet restituisce un cursore lampeggiante.
Questo errore significa che il server SMTP blocca il vostro indirizzo IP o il contenuto dell’e-mail. Si può provare a impostare utente/password nei codici per eseguire l’autenticazione utente e riprovare. Se il client di posta elettronica imposta l’autenticazione dell’utente, la maggior parte dei server SMTP non controlla l’indirizzo IP di origine del client nella lista nera.
Se il server SMTP restituisce un errore, di solito fornisce una descrizione dell’errore. Alcune descrizioni includono anche un link HTTP; è possibile andare a questa pagina web collegata per avere maggiori dettagli. È inoltre possibile utilizzare i seguenti codici per generare un file di log per conoscere tutte le sessioni SMTP tra client e server.
Macro per inviare e-mail da un elenco excel
L’invio di un messaggio di posta elettronica tramite Gmail con VBA è facile se si conoscono le informazioni corrette sul server SMTP di Gmail e sulla porta. Dopo aver configurato il messaggio utilizzando la libreria Microsoft CDO, la macro sarà pronta per l’invio. Se sul vostro account Gmail è abilitata la verifica in due passaggi (autenticazione a due fattori), dovrete fare un passo in più. In questo tutorial vi illustrerò l’intero processo.
Si tratta di un’operazione piuttosto semplice. Se avete difficoltà a capire o a ricordare, il nostro VBA Developer Kit gratuito può aiutarvi. È ricco di scorciatoie VBA che vi aiuteranno a creare le vostre macro come questa: ve ne invieremo una copia, insieme al nostro Big Book of Excel VBA Macros, al vostro indirizzo e-mail.
Ho impostato questa macro con un binding tardivo, il che significa che non è necessario abilitare alcuna libreria esterna. Tutto ciò che dovete fare è copiare e incollare la macro e sarà pronta per l’uso. Lo svantaggio è che non si avrà il completamento automatico (IntelliSense) durante la digitazione.
Per abilitare il completamento automatico, è necessario trasformare la macro in Early Binding. Andate in Strumenti > Riferimenti nell’editor VBA e selezionate la casella accanto a Microsoft CDO for Windows 2000 Library. Quindi, durante l’inizializzazione delle variabili, sostituite tutto ciò che si trova al di sopra del commento “load all default configurations” con il seguente blocco di codice: