Pubblicato il

email

python

smtplib

script


come inviare una email con python 2 o python 3 usando smtplib

Ciao a tutti e benvenuti in questa nuova guida Python su come inviare una email utilizzando un programma scritto in codice Python. Per seguire questa guida non avete bisogno di scaricare alcun contenuto aggiuntivo, a patto che abbiate già Python installato sul vostro sistema. Questo codice dovrebbe funzionare sia con Python 2 che con Python 3.

Motivi per mandare un’email da uno script Python

Ci sono vari motivi per cui qualcuno vorrebbe inviare una email automatica da uno script Python. Per esempio se avete un sito con un sistema di notifiche, potete inviare un’email ai vostri utenti quando hanno una nuova notifica. Oppure potete creare un sistema di report per il vostro server che vi notifica tramite email quando qualcosa va storto. Ci sono tante altre situazioni in cui inviare delle email automatizzate potrebbe essere molto utile. In questa guida vedremo come inviare queste email utilizzando uno dei linguaggi di programmazione più popolari del giorno d’oggi: Python

Come inviare una email da uno script Python con smtplib

Lo script per inviare una email con Python è semplicissimo. In questo esempio andiamo ad utilizzare la libreria smtplib per python. Questa libreria fa parte delle librerie Core di Python quindi non vi è necessità di scaricare nulla.

import smtplib
contenuto = 'il contenuto della mia email'
mail = smtplib.SMTP('smtp.gmail.com', 587) # questa configurazione funziona per gmail
mail.ehlo() # protocollo per extended SMTP
mail.starttls() # email criptata
mail.login("LaMiaEmail", "LaMiaPassword")
mail.sendmail('LaMiaEmail', 'EmailDiDestinazione', contenuto)
mail.close()


Questo esempio è specifico per chi sta inviando una email utilizzando un account Gmail. Se non state utilizzando Gmail, potete controllare quale server dovete utilizzare dalla lista in fondo alla pagina. Semplicemente trovate il server che fa al vostro caso e sostituitelo nella linea 3 del codice. Il resto del codice è abbastanza intuitivo da capire.

Problemi comuni nell’inviare email con Python

  • Uno dei problemi spesso incontrato quando si sta testando questo script è l’errore: 

 AttributeError: 'module' object has no attribute 'SMTP' 

Questo errore si presenta nella maggior parte dei casi perché avete chiamato il vostro file: email.py 

Questo nome “email.py” è un nome riservato, dato che Python già fa utilizzo internamente di un file con questo nome.

Per risolvere il problema basta semplicemente cambiare il nome del file.

  • Un altro errore spesso incontrato è:

smtplib.SMTPAuthenticationError: Username and Password not accepted

Questo errore, (come dice il nome) proviene dal fatto che si è presentato un errore durante il processo di verifica dei credenziali di login. Questo può essere dato da due fatti:

  1. Avete sbagliato email o password: Controllare bene se l’email e la password sono effettivamente quelle giuste.
  2. State utilizzando un sistema di login a due passaggi (two factor authentication). Per inviare una email con Python usando un sistema di verifica a due passaggi, dovete prima generare una password specifica per le app. Per creare una password per app con Gmail cliccare qui:  https://support.google.com/accounts/answer/185833?hl=it


Lista di server SMPT


 Provider Server Port
 Gmail smtp.gmail.com 465
 Gmail smtp.gmail.com 587
 Outlook smtp.live.com 587
 Office365    smtp.office365.com 587
 Yahoo smtp.mail.yahoo.com    465
 Hotmail smtp.live.com 465

Se hai una domanda puoi chiedere qualsiasi cosa nei commenti in basso

Grazie per aver letto questa guida su Devnews.it

Spero ti sia stata utile in qualche modo. Ti prego di supportare questa pagina mettendo mi piace alle nostre pagine social cliccando un basso, dove pubblichiamo regolermente notizie, tutorial e fatti curiosi sull'informatica. Grazie e ci vediamo alla prossima :)