Sebbene i client di posta elettronica commerciali offrano la comodità di una GUI user-friendly, spesso non hanno l'estensione flessibilità e personalizzazione che molti sviluppatori o creatori di contenuti desiderano per la loro posta elettronica esigenze.

Che si tratti di inviare un'e-mail di ringraziamento a un nuovo abbonato sul tuo canale di social media o di aggiungere funzionalità di posta elettronica a il tuo ultimo progetto, la possibilità di inviare messaggi automatici utilizzando SMTP in Python è qualcosa che è destinato a entrare maneggevole.

Continua a leggere per scoprire come ottenere uno script Python per inviare e-mail in esecuzione sulla tua macchina oggi.

Cos'è l'SMTP?

Per dirla semplicemente, SMTP, o Simple Mail Transfer Protocol, è un protocollo di comunicazione per i server di posta per trasmettere e-mail su Internet.

È parte integrante del livello applicativo della suite TCP / IP, che è un insieme di protocolli utilizzati per la comunicazione su Internet o altre reti simili. In una rete in cui è implementato SMTP, un processo noto come

instagram viewer
memorizzare e inoltrare aiuta a spostare la posta attraverso le reti.

In ogni endpoint, il software noto come Mail Transfer Agent (MTA) utilizza l'archiviazione e l'inoltro per facilitare la comunicazione tra i server SMTP partecipanti. Il ruolo principale di SMTP, quindi, è semplicemente quello di dettare dove e come la posta si sposta da un punto a un altro in una rete.

Iniziare

È necessario disporre di un account e-mail da utilizzare per inviare e-mail utilizzando questo programma. Questo perché utilizzeremo il servizio SMTP del client di posta elettronica per inviare le email. Per questo tutorial, utilizzeremo Gmail.

Puoi anche utilizzare un server di debug SMTP locale per inviare email di prova, ma per ora utilizzeremo un account email per inviare email poiché è più intuitivo.

È possibile utilizzare semplicemente un account Gmail esistente, ma mentre giochi con il tuo programma, potrebbe presto essere riempito con e-mail di prova. Questo è il motivo per cui consigliamo di creare un account "usa e getta" ai fini del test.

Ora, attiva l'opzione per consentire app meno sicure per accedere al tuo account Gmail. Questo è un altro motivo per utilizzare un'e-mail usa e getta in quanto non è consigliabile giocare con le impostazioni sulla privacy della tua e-mail principale.

Scrivere l'e-mail in Python

Python 3 viene preinstallato con un modulo chiamato smtplib (abbreviazione di smtp library), che può essere utilizzato per lavorare con i server SMTP.

Come ogni altro modulo Python, la prima cosa che devi fare è importare smtplib.

import smtplib

Inizializzazione di un oggetto SMTP

Ora puoi usare smtplib per creare un oggetto SMTP, che ti fornirà la maggior parte delle funzionalità di un client di posta tradizionale. Tuttavia, le funzioni di un oggetto SMTP possono essere utilizzate solo tramite metodi di istanza. Quindi, naturalmente, il passaggio successivo è dichiarare un'istanza di oggetto.

mySMTP = smtplib. SMTP ("smtp.google.com") 

Questo configura l'oggetto SMTP per inviare e-mail utilizzando il server SMTP di Google.

Successivamente, specifichiamo le e-mail del mittente e del destinatario. È qui che torna utile l'account Gmail che hai creato in precedenza.

emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]

Una cosa da notare qui è che l'elenco dei destinatari è in realtà un array, il che significa che è progettato per memorizzare valori non atomici. Di conseguenza, puoi persino specificare un'intera mailing list in questo campo!

Scrivere il messaggio

Probabilmente la parte più semplice del processo, qui devi inserire i valori che normalmente aggiungi durante la composizione di una nuova email. Ciò comprende:

  • Dettagli del mittente
  • Dettagli del destinatario
  • Soggetto
  • Corpo del messaggio

Questi campi sono racchiusi tra virgolette triple e sono delimitati come segue:

newEmail = From: From Person 
A: A persona
Oggetto: test e-mail
Questo è il corpo dell'email.

Invio dell'e-mail

Infine, possiamo utilizzare il comando sendmail per inviare la posta dal tuo server SMTP al server del destinatario.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Ora, c'è solo un passaggio finale: riorganizzare il codice per prevenire eventuali arresti anomali del programma prevedibili.

Risoluzione dei problemi del programma di posta elettronica Python

A volte, il tuo server SMTP potrebbe non riuscire a stabilire una connessione con quello del destinatario o potrebbe esserci un problema con l'invio di un'e-mail da una porta SMTP a un'altra. In tal caso, il programma potrebbe bloccarsi in modo imprevisto.

Per tenere conto di tali possibilità, puoi utilizzare un file prova tranne bloccare e inserire le istruzioni soggette a errori all'interno del file provare bloccare. L'intero programma, insieme al blocco try-tranne, dovrebbe assomigliare a questo:

import smtplib
emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]
newEmail = From: From Person
A: A persona
Oggetto: test e-mail
Questo è il corpo dell'email.

provare:
smtpObj = smtplib. SMTP ("smtp.gmail.com")
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
print ("Email inviata con successo!")
tranne SMTPException:
print ("Errore: si è verificato un errore durante l'invio della tua email.")

Proteggere le tue e-mail

Se intendi utilizzare Python in un ambiente reale per inviare e-mail, è importante assicurarsi che la comunicazione sia sicura su entrambi i lati.

L'utilizzo di un semplice server SMTP con la porta predefinita non fornisce alcun livello di crittografia alla comunicazione. Ciò significa che se una terza parte è in ascolto sulla tua rete, può accedere alle tue credenziali di accesso e alle informazioni contenute nella tua email.

Un modo per aggirare questo problema è utilizzare il protocollo TLS (Transport Layer Security) per crittografare la comunicazione. Questo è lo stesso protocollo utilizzato dai principali client di posta elettronica come Gmail e Outlook per garantire che le tue e-mail non cadano mai nelle mani sbagliate.

Per fare ciò, dobbiamo apportare alcune piccole modifiche al programma che abbiamo creato in precedenza.

Il primo passo, ovviamente, è importare il file ssl biblioteca insieme a smtplib. Il ssl library offre la possibilità di creare un contesto SSL sicuro e di comunicare su una rete crittografata connettendosi a porte specifiche su entrambe le estremità.

Un contesto SSL sicuro non è altro che una raccolta di crittografie, versioni di protocolli, certificati affidabili, opzioni TLS ed estensioni TLS.

Successivamente, possiamo specificare la porta TLS e aggiungerne alcuni ssl funzioni di libreria per creare un emailer sicuro.

Il codice, con tutte le modifiche apportate, assomiglia a questo:

importa smtplib, ssl
smtpServer = "smtp.gmail.com"
porta = 587
myEmail = "[email protected]"
password = "mia_password"
#email e password possono anche essere campi di input dell'utente
context = ssl.create_default_context ()
newEmail = From: From Person
A: A persona
Oggetto: test e-mail
Questo è il corpo dell'email.

provare:
server = smtplib. SMTP (smtpServer, porta)
server.starttls (contesto = contesto)
server.login (newEmail, password)
tranne Eccezione come e:
print ("non è stato possibile inviare l'email.")
infine:
server.quit ()

Come prima, è necessario creare e utilizzare l'istanza SMTP in un blocco try-tranne per evitare arresti anomali improvvisi del programma.

Cosa puoi fare con questo script Python

Ora che hai acquisito la straordinaria e sorprendentemente utile abilità di automatizzare le e-mail utilizzando il codice, puoi applicarlo a qualsiasi piattaforma che richiede l'invio di e-mail a una mailing list diversificata.

Dall'utilizzo sul tuo sito Web personale per inviare e-mail di conferma automatiche all'utilizzo per e-mail di cartoline di Natale o inviti a familiari e amici, gli usi di questo piccolo script Python sono limitati solo dal tuo creatività.

Inoltre, questa è solo una delle tante cose fantastiche che puoi fare con Python. Con il suo onnipresente supporto per gli sviluppatori e la sintassi di facile apprendimento, acquisire un'abilità Python non è mai stato così facile.

Per continuare a creare cose interessanti con il codice, consulta la nostra guida su come farlo crea il tuo bot Telegram con Python 3!

E-mail
Come aggiornare le tue abilità Python e AI con Keras, Pytorch, Tensorflow e altro

Migliora le tue capacità di programmazione e sviluppo web su Python, intelligenza artificiale, Keras, PyTorch e altro

Argomenti correlati
  • Programmazione
  • Gmail
  • Suggerimenti per e-mail
  • Pitone
  • Automazione delle attività
Circa l'autore
Yash Chellani (8 articoli pubblicati)

Yash è un aspirante studente di informatica che ama costruire cose e scrivere di tutto ciò che riguarda la tecnologia. Nel tempo libero, gli piace giocare a Squash, leggere una copia dell'ultimo Murakami e cacciare i draghi a Skyrim.

Altro di Yash Chellani

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.