Deze tutorial geeft een inleiding tot SMTP, een Python-module die wordt gebruikt voor het verzenden van e-mail. Het toont ook hoe verschillende e-mailtypen kunnen worden verzonden, zoals e-mails met eenvoudige tekst, e-mails met bijlagen en e-mails met HTML-inhoud.
Het Simple Mail Transfer Protocol (SMTP) zorgt voor het verzenden en routeren van e-mail tussen e-mailservers.
In Python, de smtplib
module definieert een SMTP-clientsessieobject dat kan worden gebruikt om e-mail te verzenden naar elke internetmachine met een SMTP- of ESMTP-listener daemon.
Hier ziet u hoe u een SMTP-object maakt.
import smtplib server = smtplib.SMTP (host = 'host_address', poort = jouw_poort)
Met het volgende script kunt u een e-mail verzenden via de Gmail SMTP-server. Google staat echter niet toe om in te loggen via smtplib
omdat het dit type login heeft gemarkeerd als "minder veilig". Om dit op te lossen, gaat u naar https://www.google.com/settings/security/lesssecureapps terwijl u bent aangemeld bij uw Google-account en 'Sta minder goed beveiligde apps toe'. Zie screenshot hieronder.
We zullen de volgende stappen volgen om dit proces te voltooien:
MIMEMultipart
berichtobject en voeg de relevante berichtkoppen eraan toe, zoals Van, Aan en Onderwerp.MIMEMultipart
voorwerp.Dit proces is zo eenvoudig als hieronder weergegeven.
# import noodzakelijke pakketten van email.mime.multipart import MIMEMultipart van email.mime.text import MIMEText import smtplib # create message object instance msg = MIMEMultipart () message = "Thank you" # stel de parameters van het berichtwachtwoord in = "your_password" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Subject'] = "Abonnement" # voeg in het bericht body toe msg.attach (MIMEText (message, 'plain')) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Aanmeldingsreferenties voor het verzenden van de mail server.login (msg ['From'], wachtwoord) # stuur het bericht via de server . server.sendmail (msg ['Van'], msg ['To'], msg.as_string ()) server.quit () print "succesvol verzonden e-mail naar% s:"% (msg ['To'])
Houd er rekening mee dat de adressen 'Aan' en 'Van' expliciet in de berichtkoppen moeten worden opgenomen.
In dit voorbeeld gaan we een e-mail sturen met een afbeeldingsbijlage. Het proces is vergelijkbaar met het verzenden van e-mail met platte tekst.
MIMEMultipart
berichtobject en voeg de relevante berichtkoppen eraan toe, zoals Van, Aan en Onderwerp.MIMEMultipart
voorwerp.# import_attachment.py # importeer noodzakelijke pakketten van email.mime.multipart importeer MIMEMultipart van email.MIMEImage-import MIMEImage van email.mime.text import MIMEText import smtplib # create message object instance msg = MIMEMultipart () # stel de parameters van het berichtwachtwoord in = "your_password" msg ['From'] = "uw_adres" msg ['To'] = "to_address" msg ['Subject'] = "Foto's" # afbeelding toevoegen aan bericht body msg.attach (MIMEImage (bestand ("google .jpg "). read ())) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Aanmeldingsgegevens voor het verzenden van de mail server.login (msg ['Van' ], wachtwoord) # verstuur het bericht via de server. server.sendmail (msg ['Van'], msg ['To'], msg.as_string ()) server.quit () print "succesvol verzonden e-mail naar% s:"% (msg ['To'])
De MIMEImage
class is een subklasse van MIMENonMultipart
die wordt gebruikt om MIME-berichtobjecten van afbeeldingstypen te maken.Andere beschikbare klassen zijn onder andereMIMEMessage
en MIMEAudio
.
Het eerste dat we gaan doen, is een HTML-e-mailsjabloon maken.
Hier is de HTML-code voor de sjabloon en deze bevat twee tabelkolommen met elk een afbeelding en een preview-inhoud. Als u de voorkeur geeft aan een kant-en-klare, professionele oplossing, kunt u onze beste e-mailsjablonen gebruiken. We hebben een aantal responsieve opties met eenvoudig aan te passen functies om mee aan de slag te gaan.
Tutsplus e-mailnieuwsbrief
|
De sjabloon ziet er uiteindelijk als volgt uit:
Hieronder staat het script voor het verzenden van een e-mail met HTML-inhoud. De inhoud van de sjabloon zal ons e-mailbericht zijn.
import smtplib import email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Tutsplus e-mailnieuwsbrief
|
Voer uw code uit en als er geen fout optreedt, is de e-mail succesvol verlopen. Ga nu naar uw inbox en u zou uw e-mail moeten zien als HTML-inhoud die netjes is opgemaakt.
Deze zelfstudie bevat het grootste deel van wat nodig is om e-mails voor uw toepassing te verzenden. Er zijn verschillende API's beschikbaar voor het verzenden van e-mails, zodat u niet helemaal opnieuw hoeft te beginnen, bijvoorbeeld SendGrid, maar het is ook belangrijk om de basisprincipes te begrijpen. Ga naar de documentatie van Python voor meer informatie.
Aarzel niet om te zien wat we te koop aanbieden en om te studeren in Envato Market, en stel vragen en geef waardevolle feedback via de onderstaande feed.