Invia e-mail in Python
Najwa Riyaz
12 ottobre 2021
Per inviare un’e-mail utilizzando Python, utilizzare le seguenti funzioni dalla libreria smtplib
.
SMTP(SMTP_SERVER, SMTP_PORT)
- crea una sessione SMTP secondo il server SMTP e i dettagli della porta SMTP.starttls()
- per avviare il TLS per l’impostazione della sicurezza.login(SMTP_USERNAME, SMTP_PASSWORD)
- per fornire i dettagli di autenticazione del mittente dell’e-mail.sendmail(EMAIL_FROM, EMAIL_TO, the_message)
- per inviare il messaggio dal mittente al destinatario.quit()
per uscire dalla sessione SMTP.
Ecco un esempio che dimostra l’invio di posta tramite il server SMTP di Gmail.
import smtplib
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"
s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()
L’output potrebbe apparire come segue secondo la connessione creata in quel punto nel tuo sistema:
(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")
Di conseguenza, l’e-mail viene inviata. Il destinatario riceve il messaggio con successo.
Nota:
- In caso di Gmail, fornire i seguenti dettagli SMTP:
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
Inoltre, la seguente impostazione deve essere abilitata in Gmail prima di eseguire il codice.
https://myaccount.google.com/lesssecureapps
- In caso di Yahoo Mail, fornire i seguenti dettagli SMTP:
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587
Inoltre, genera una Password app
di Yahoo prima di eseguire il codice. Controlla il link qui sotto.
https://help.yahoo.com/kb/generate-separate-password-sln15241.html
- Allo stesso modo, se desideri utilizzare qualsiasi altro provider di posta, utilizza i dettagli e i prerequisiti del rispettivo server SMTP.