Video Corso Base di Python 3

24: Come Inviare eMail con Python

Menu della Serie




ATTENZIONE: per poter utilizzare quando descritto nel tutorial seguente potreste aver bisogno di aggiungere un'eccezzione per l'utilizzo di applicazioni esterne dalle impostazioni del vostro account di posta!

Ciao a tutti ragazzi e ragazze!
Oggi impararemo quanto è facile automatizzare l'invio di eMail all'interno dei nostri programmi in Python.

Ci sono varie situazioni in cui questo torna utile, specie in programmi importanti o che girano su macchine che stanno sempre connesse, capita che ci sia la necessità di essere
notificati in tempo reale, e pensate a quanto tempo tra copia e incolla vi fa risparimare quando vi trovate con dei file pieni di indirizzi a cui dovete poi inviare un messaggio.

Tutto questo è reso possibile grazie al Modulo smtplib, che quindi importiamo all'istante:

import smtplib

Questo Modulo rappresenta l'implementazione in Python del protocollo SMTP, che sta per Simple Mail Transfer Protocol.

Creiamo del contenuto che ci interessa inviare:

oggetto = "Subject: Urgente! da leggere subito!\n\n"
contenuto = "connettiti al Server che è meglio..."
messaggio = oggetto + contenuto

Volendo avreste potuto scrivere oggeto e contenuto nella stessa variabile, ma penso che così sia più pulito.

Quindi dobbiamo specificare il Server SMTP del servizio a cui vogliamo connetterci, e la relativa porta di servizio associata, in questo Tutorial useremo gMail:

email = smtplib.SMTP("smtp.gmail.com",587)

Ora possiamo connetterci al server, con:

email.ehlo()

A questo punto avviamo un canale criptato tramite:

email.starttls()

dove tls sta per Transport Layer Security, ovvero il protocollo crittografico che mette in sicurezza la nostra comunicazione col Server.

A questo punto possiamo effettuare il Login vero e proprio usando i nostri Username e Password:

email.login("username","password")

Ora siamo pronti per inviare la nostra eMail:

email.sendmail("mittente","destinatario",messaggio)

Una volta che il messaggio è inviato, interrompiamo la connessione col Server:

email.quit()

Chiaramente tutta la potenza di questi comandi viene liberata quando vengono utilizzati all'interno di uno script, che potrete poi salvare e richiamare ogni volta che vi serve!