Come inviare messaggi di posta elettronica automatizzati in Python

Come inviare messaggi di posta elettronica automatizzati in Python

Sebbene i client di posta elettronica commerciali offrano la comodità di una GUI intuitiva, spesso mancano della flessibilità e della personalizzazione che molti sviluppatori o creatori di contenuti desiderano per le loro esigenze di posta elettronica.





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 al tuo ultimo progetto, la possibilità di inviare messaggi automatici utilizzando SMTP in Python è qualcosa che è destinato a tornare utile.





Continua a leggere per scoprire come ottenere uno script Python per inviare e-mail in esecuzione sul tuo computer oggi.





Che 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 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 all'altro in una rete.

Iniziare

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





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

È possibile utilizzare semplicemente un account Gmail esistente, ma mentre giochi con il tuo programma, potrebbe presto riempirsi di e-mail di prova. Questo è il motivo per cui consigliamo di creare un account 'usa e getta' a scopo di test.





Ora attiva l'opzione per consenti 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 dell'e-mail principale.

Scrivere l'e-mail in Python

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

Come qualsiasi 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 convenzionale. Tuttavia, le funzioni di un oggetto SMTP possono essere utilizzate solo tramite metodi di istanza. Quindi, naturalmente, il passaggio successivo consiste nel dichiarare un'istanza di oggetto.

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

Ciò 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 è dove torna utile l'account Gmail che hai creato in precedenza.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
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 anche 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 aggiungeresti durante la composizione di una nuova email. Ciò comprende:

  • Dati del mittente
  • Dati del destinatario
  • Soggetto
  • Corpo del messaggio

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

come ottenere emoticon su Twitch
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the 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 ultimo passaggio: riorganizzare il codice per prevenire eventuali arresti anomali del programma prevedibili.

Risoluzione dei problemi del tuo programma di posta elettronica Python

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

Per tenere conto di tali possibilità, è possibile utilizzare a prova-tranne bloccare e inserire le istruzioni soggette a errori all'interno di Tentativo bloccare. L'intero programma, insieme al blocco try-eccetto, dovrebbe assomigliare a questo:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

Proteggere le tue email

Se intendi utilizzare Python in un ambiente reale per inviare e-mail, è importante assicurarsi che la comunicazione sia sicura su entrambe le estremità.

L'utilizzo di un semplice server SMTP con la porta predefinita non fornisce alcun livello di crittografia alla comunicazione. Ciò significa che se qualsiasi 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 consiste nell'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 ssl biblioteca insieme a smtplib . Il ssl La libreria ti dà la possibilità di creare un contesto SSL sicuro e comunicare su una rete crittografata collegandoti a porte specifiche su entrambe le estremità.

Un contesto SSL sicuro non è altro che una raccolta di cifre, versioni di protocollo, certificati attendibili, opzioni TLS ed estensioni TLS.

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

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

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

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

come ottenere un filtro su snapchat

Cosa puoi fare con questo script Python

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

Dall'utilizzo sul tuo sito Web personale per inviare e-mail di riconoscimento automatizzate all'utilizzo per inviare cartoline di Natale o inviti a familiari e amici, gli usi di questo piccolo script Python sono limitati solo dalla tua 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 costruisci il tuo bot di Telegram con Python 3 !

Condividere Condividere Tweet E-mail Come aggiornare le tue abilità di 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

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Gmail
  • Suggerimenti per la posta elettronica
  • Pitone
  • Automazione delle attività
Circa l'autore Yash Chellani(10 Articoli Pubblicati)

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

Altro da Yash Chellani

Iscriviti alla nostra Newsletter

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

Clicca qui per iscriverti