Questo tutorial fornirà un'introduzione a SMTP, un modulo Python utilizzato per l'invio di posta. Mostrerà anche come inviare diversi tipi di email come semplici e-mail di testo, e-mail con allegati ed e-mail con contenuto HTML.
Il protocollo SMTP (Simple Mail Transfer Protocol) gestisce l'invio e il routing della posta tra i server di posta.
In Python, il smtplib
modulo definisce un oggetto sessione client SMTP che può essere utilizzato per inviare posta a qualsiasi macchina Internet con un daemon listener SMTP o ESMTP.
Ecco come creare un oggetto SMTP.
import smtplib server = smtplib.SMTP (host = 'host_address', porta = tua_port)
Il seguente script ti consentirà di inviare un'email tramite il server SMTP di Gmail. Tuttavia, Google non consentirà l'accesso tramite smtplib
perché ha contrassegnato questo tipo di accesso come "meno sicuro". Per risolvere questo problema, vai su https://www.google.com/settings/security/lesssecureapps mentre hai eseguito l'accesso al tuo account Google e "Consenti app meno sicure". Vedi la schermata qui sotto.
Seguiremo i seguenti passi per realizzare questo processo:
MimeMultipart
oggetto messaggio e allegare le intestazioni pertinenti ad esso, ad esempio Da, A e Oggetto.MimeMultipart
oggetto.Questo processo è semplice come mostrato di seguito.
# import pacchetti necessari da email.mime.multipart import MIMEMultipart da email.mime.text import MIMEText import smtplib # create message object instance msg = MIMEMultipart () message = "Grazie" # setup i parametri del messaggio password = "your_password" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Subject'] = "Subscription" # aggiungi nel corpo del messaggio msg.attach (MIMEText (message, 'plain')) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Credenziali di accesso per l'invio della mail server.login (msg ['From'], password) # invia il messaggio tramite il server . server.sendmail (msg ['From'], msg ['To'], msg.as_string ()) server.quit () stampa "email inviata con successo a% s:"% (msg ['To'])
Si noti che gli indirizzi "A" e "Da" devono essere inclusi esplicitamente nelle intestazioni dei messaggi.
In questo esempio, invieremo un'email con un allegato immagine. Il processo è simile all'invio di un'e-mail in testo semplice.
MimeMultipart
oggetto messaggio e allegare le intestazioni pertinenti ad esso, ad esempio Da, A e Oggetto.MimeMultipart
oggetto.# send_attachment.py # importa i pacchetti necessari da email.mime.multipart importa MIMEMultipart da email.MIMEImage importa MIMEImage da email.mime.text import MIMEText importa smtplib # crea l'istanza dell'oggetto messaggio msg = MIMEMultipart () # imposta i parametri della password del messaggio = "your_password" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Subject'] = "Photos" # collega immagine al corpo del messaggio msg.attach (MIMEImage (file ("google .jpg "). read ())) # crea server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Credenziali di accesso per l'invio della mail server.login (msg ['From' ], password) # invia il messaggio tramite il server. server.sendmail (msg ['From'], msg ['To'], msg.as_string ()) server.quit () stampa "email inviata con successo a% s:"% (msg ['To'])
Il MIMEImage
la classe è una sottoclasse di MIMENonMultipart
che viene utilizzato per creare oggetti messaggio MIME di tipi di immagine.Altre classi disponibili includonoMIMEMessage
e MIMEAudio
.
La prima cosa che faremo è creare un modello di email HTML.
Ecco il codice HTML per il modello e contiene due colonne di tabella ciascuna con un'immagine e contenuto di anteprima. Se preferisci una soluzione professionale e pronta, prendi i nostri migliori modelli di email. Abbiamo una serie di opzioni reattive con funzionalità facili da personalizzare per iniziare.
Newsletter per e-mail Tutsplus
|
Alla fine, il modello apparirà come questo:
Di seguito è riportato lo script per l'invio di un'e-mail con contenuto HTML. Il contenuto del modello sarà il nostro messaggio di posta elettronica.
import smtplib import email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Newsletter per e-mail Tutsplus
|
Esegui il tuo codice e, se non si verifica alcun errore, l'email è andata a buon fine. Ora vai nella tua posta in arrivo e dovresti vedere la tua email come contenuto HTML ben formattato.
Questo tutorial ha coperto la maggior parte di ciò che è necessario per inviare e-mail per la tua applicazione. Sono disponibili diverse API per l'invio di e-mail, quindi non è necessario iniziare da zero, ad es. SendGrid, ma è anche importante capire le basi. Per ulteriori informazioni, visita i documenti Python.
Inoltre, non esitare a vedere ciò che abbiamo a disposizione per la vendita e per studiare nel mercato Envato, e per favore fai tutte le domande e fornisci il tuo prezioso feedback usando il feed qui sotto.