Geautomatiseerde e-mailberichten verzenden in Python

Geautomatiseerde e-mailberichten verzenden in Python

Hoewel commerciële e-mailclients het gemak van een gebruiksvriendelijke GUI bieden, missen ze vaak de flexibiliteit en aanpasbaarheid die veel ontwikkelaars of makers van inhoud wensen voor hun e-mailbehoeften.





Of het nu gaat om het sturen van een bedankmail naar een nieuwe abonnee op je sociale-mediakanaal of het toevoegen van e-mailfunctionaliteit aan je laatste project, de mogelijkheid om geautomatiseerde berichten te verzenden met SMTP in Python is iets dat zeker van pas zal komen.





Lees verder om erachter te komen hoe u een Python-script kunt krijgen om e-mails te verzenden die vandaag op uw computer worden uitgevoerd.





Wat is SMTP?

Simpel gezegd, SMTP, of Simple Mail Transfer Protocol, is een communicatieprotocol voor mailservers om e-mail via internet te verzenden.

Het is een integraal onderdeel van de applicatielaag van de TCP/IP-suite, een set protocollen die wordt gebruikt voor communicatie via internet of andere soortgelijke netwerken. In een netwerk waar SMTP is geïmplementeerd, wordt een proces genoemd: opslaan en doorsturen helpt bij het verplaatsen van e-mail over netwerken.



Op elk eindpunt gebruikt software die bekend staat als Mail Transfer Agent (MTA), opslaan en doorsturen om de communicatie tussen de deelnemende SMTP-servers te vergemakkelijken. De belangrijkste rol van SMTP is daarom eenvoudig te dicteren waar en hoe e-mail van het ene punt naar het andere in een netwerk wordt verplaatst.

Beginnen

U moet een e-mailaccount hebben om e-mails te verzenden met dit programma. Dit komt omdat we de SMTP-service van de e-mailclient zullen gebruiken om e-mails te verzenden. Voor deze zelfstudie gebruiken we Gmail.





U kunt ook een lokale SMTP-foutopsporingsserver gebruiken om test-e-mails te verzenden, maar voorlopig gebruiken we een e-mailaccount om e-mails te verzenden, omdat dit intuïtiever is.

Het is mogelijk om gewoon een bestaand Gmail-account te gebruiken, maar als je met je programma speelt, kan het snel vol raken met test-e-mails. Daarom raden we aan om een ​​'wegwerp'-account aan te maken om te testen.





Schakel nu de optie in om minder veilige apps toestaan om toegang te krijgen tot uw Gmail-account. Dit is nog een reden om een ​​wegwerp-e-mail te gebruiken, aangezien het niet wordt aanbevolen om te spelen met de privacy-instellingen van uw primaire e-mail.

De e-mail schrijven in Python

Python 3 is vooraf geïnstalleerd met een module genaamd smtplib (afkorting van smtp-bibliotheek), die kan worden gebruikt om met SMTP-servers te werken.

Net als elke andere Python-module, is het eerste dat u hoeft te doen smtplib importeren.

import smtplib

Een SMTP-object initialiseren

Nu kunt u smtplib gebruiken om een ​​SMTP-object te maken, dat u de meeste functionaliteit van een conventionele e-mailclient zal bieden. De functies van een SMTP-object kunnen echter alleen worden gebruikt via instantiemethoden. Dus de volgende stap is natuurlijk het declareren van een objectinstantie.

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

Hiermee wordt het SMTP-object geconfigureerd om e-mails te verzenden met behulp van de SMTP-server van Google.

Hierna specificeren we de afzender en ontvanger e-mails. Hier komt het Gmail-account dat je eerder hebt gemaakt van pas.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Een ding om op te merken is dat de lijst met ontvangers eigenlijk een array is, wat betekent dat deze is ontworpen om niet-atomaire waarden op te slaan. Hierdoor kunt u in dit veld zelfs een hele mailinglijst opgeven!

Het bericht schrijven

Dit is misschien wel het meest eenvoudige deel van het proces, hier moet u waarden invoeren die u normaal zou toevoegen bij het opstellen van een nieuwe e-mail. Dit bevat:

  • Gegevens afzender
  • Gegevens van de ontvanger
  • Onderwerp
  • Bericht lichaam

Deze velden staan ​​tussen drie aanhalingstekens en zijn als volgt afgebakend:

hoe audible gratis proef te annuleren
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

De e-mail verzenden

Ten slotte kunnen we de opdracht sendmail gebruiken om de e-mail van uw SMTP-server naar de server van de ontvanger te sturen.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Nu is er nog maar één laatste stap: het reorganiseren van de code om voorzienbare programmacrashes te voorkomen.

Problemen met uw Python-e-mailprogramma oplossen

Soms kan uw SMTP-server geen verbinding maken met die van de ontvanger, of kan er een probleem zijn met het verzenden van een e-mail van de ene SMTP-poort naar de andere. In een dergelijk geval kan uw programma onverwacht crashen.

Om rekening te houden met dergelijke mogelijkheden, kunt u a probeer-behalve blok en plaats de foutgevoelige instructies in de proberen blok. Je hele programma, samen met het try-behalve-blok, zou er ongeveer zo uit moeten zien:

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.')

Uw e-mails beveiligen

Als u van plan bent om Python in een echte omgeving te gebruiken om e-mails te verzenden, is het belangrijk om ervoor te zorgen dat de communicatie aan beide kanten veilig is.

Het gebruik van een eenvoudige SMTP-server met de standaardpoort biedt geen enkele coderingslaag voor de communicatie. Dit betekent dat als een derde partij meeluistert op uw netwerk, deze toegang heeft tot uw inloggegevens en de informatie in uw e-mail.

Een manier om dit probleem te omzeilen is door het TLS-protocol (Transport Layer Security) te gebruiken om uw communicatie te versleutelen. Dit is hetzelfde protocol dat wordt gebruikt door grote e-mailclients zoals Gmail en Outlook om ervoor te zorgen dat uw e-mails nooit in verkeerde handen vallen.

Om dit te doen, moeten we een paar kleine wijzigingen aanbrengen in het programma dat we eerder hebben gemaakt.

De eerste stap is natuurlijk het importeren van de ssl bibliotheek samen met smtplib . De ssl bibliotheek geeft u de mogelijkheid om een ​​veilige SSL-context te creëren en via een versleuteld netwerk te communiceren door aan beide kanten verbinding te maken met specifieke poorten.

Een veilige SSL-context is niets anders dan een verzameling cijfers, protocolversies, vertrouwde certificaten, TLS-opties en TLS-extensies.

Hierna kunnen we de TLS-poort specificeren en er een paar toevoegen ssl bibliotheekfuncties om een ​​veilige e-mailer te maken.

De code, met alle aangebrachte wijzigingen, ziet er ongeveer zo uit:

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()

Zoals eerder moet u de SMTP-instantie in een try-behalve-blok maken en gebruiken om abrupte programmacrashes te voorkomen.

de pijn zelf vertalen naar het engels

Wat u kunt doen met dit Python-script

Nu je de geweldige en verrassend nuttige vaardigheid van het automatiseren van e-mails met code hebt opgepikt, kun je het toepassen op elk platform waarvoor e-mails naar een diverse mailinglijst moeten worden verzonden.

Van het gebruik op uw persoonlijke website om geautomatiseerde bevestigingsmails te verzenden tot het gebruik ervan om kerstkaarten of uitnodigingen naar uw familie en vrienden te e-mailen, het gebruik van dit kleine Python-script wordt alleen beperkt door uw eigen creativiteit.

Dit is ook slechts een van de vele geweldige dingen die je met Python kunt doen. Met zijn alomtegenwoordige ondersteuning voor ontwikkelaars en eenvoudig te leren syntaxis, is het oppakken van een Python-vaardigheid nog nooit zo eenvoudig geweest.

Om door te gaan met het bouwen van coole dingen met code, bekijk je onze handleiding over hoe je dat kunt doen bouw je eigen Telegram-bot met Python 3 !

Deel Deel Tweeten E-mail Hoe u uw Python- en AI-vaardigheden kunt upgraden met Keras, Pytorch, Tensorflow en meer

Upgrade uw programmeer- en webontwikkelingsvaardigheden op Python, Artificial Intelligence, Keras, PyTorch en meer

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Gmail
  • E-mailtips
  • Python
  • Taakautomatisering
Over de auteur Yash Chellani(10 artikelen gepubliceerd)

Yash is een aspirant-student computerwetenschappen die ervan houdt dingen te bouwen en te schrijven over alles wat met technologie te maken heeft. In zijn vrije tijd speelt hij graag squash, leest hij een exemplaar van de nieuwste Murakami en jaagt hij op draken in Skyrim.

Meer van Yash Chellani

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren