Invia e-mail in Python

Najwa Riyaz 12 ottobre 2021
Invia e-mail in Python

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.