Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python
Python - E-mail verzenden met SMTP
Vorige paginaVolgende pagina

Simple Mail Transfer Protocol (SMTP) is een protocol dat zorgt voor het verzenden van e-mail en het routeren van e-mail tussen mailservers.

Python biedt smtplib module, die een SMTP-clientsessieobject definieert dat kan worden gebruikt om e-mail te verzenden naar elke internetmachine met een SMTP- of ESMTP-listenerdaemon.

Hier is een eenvoudige syntaxis om één SMTP-object te maken, dat later kan worden gebruikt om een ​​e-mail te verzenden −

import smtplibsmtpObj =smtplib.SMTP( [host [, poort [, local_hostname]]] )

Hier is het detail van de parameters −

  • host − Dit is de host waarop uw SMTP-server draait. U kunt het IP-adres van de host of een domeinnaam opgeven, zoals tutorialspoint.com. Dit is een optioneel argument.

  • poort − Als u host aanlevert argument, dan moet je een poort specificeren waar de SMTP-server naar luistert. Gewoonlijk is deze poort 25.

  • lokale_hostnaam − Als uw SMTP-server op uw lokale computer draait, kunt u alleen localhost opgeven vanaf deze optie.

Een SMTP-object heeft een instantiemethode genaamd sendmail , die doorgaans wordt gebruikt om het werk van het verzenden van een bericht te doen. Er zijn drie parameters nodig −

  • De afzender − Een string met het adres van de afzender.

  • De ontvangers − Een lijst met strings, één voor elke ontvanger.

  • Het bericht − Een bericht als een string geformatteerd zoals gespecificeerd in de verschillende RFC's.

Voorbeeld

Hier is een eenvoudige manier om één e-mail te verzenden met het Python-script. Probeer het een keer −

#!/usr/bin/pythonimport smtplibsender ='from@fromdomain.com'receivers =['to@todomain.com']message ="""Van:Van Persoon Aan:Aan Persoon Onderwerp:SMTP-e-mailtestDit is een test-e-mailbericht."""probeer:smtpObj =smtplib.SMTP('localhost') smtpObj.sendmail(afzender, ontvangers, bericht) print "Succesvol verzonden e-mail" behalve SMTPException:print "Fout:kan geen e-mail verzenden"

Hier heb je een standaard e-mail in het bericht geplaatst, met behulp van een driedubbele aanhalingstekens, waarbij je ervoor zorgt dat de koppen correct zijn opgemaakt. Een e-mail vereist een Van , Naar , en Onderwerp header, gescheiden van de hoofdtekst van de e-mail met een lege regel.

Om de e-mail te verzenden, gebruikt u smtpObj om verbinding te maken met de SMTP-server op de lokale computer en gebruik vervolgens de sendmail methode samen met het bericht, het van-adres en het bestemmingsadres als parameters (hoewel de van en naar adressen in de e-mail zelf staan, worden deze niet altijd gebruikt om e-mail te routeren).

Als u geen SMTP-server op uw lokale computer gebruikt, kunt u smtplib gebruiken client om te communiceren met een externe SMTP-server. Tenzij u een webmailservice gebruikt (zoals Hotmail of Yahoo! Mail), moet uw e-mailprovider u servergegevens voor uitgaande e-mail hebben verstrekt die u deze als volgt kunt verstrekken −

smtplib.SMTP('mail.uw-domein.com', 25)

Een HTML-e-mail verzenden met Python

Wanneer u een sms-bericht verzendt met Python, wordt alle inhoud behandeld als eenvoudige tekst. Zelfs als u HTML-tags in een tekstbericht opneemt, wordt het weergegeven als eenvoudige tekst en worden HTML-tags niet opgemaakt volgens de HTML-syntaxis. Maar Python biedt de mogelijkheid om een ​​HTML-bericht als een echt HTML-bericht te verzenden.

Tijdens het verzenden van een e-mailbericht kunt u een Mime-versie, inhoudstype en tekenset opgeven om een ​​HTML-e-mail te verzenden.

Voorbeeld

Hieronder volgt het voorbeeld om HTML-inhoud als e-mail te verzenden. Probeer het een keer −

#!/usr/bin/pythonimport smtplibmessage ="""Van:Van Persoon Aan:Naar Persoon MIME-Version:1.0Content -type:text/htmlSubject:SMTP HTML e-mail testDit is een e-mailbericht dat in HTML-formaat moet worden verzondenDit is een HTML-bericht.

Dit is de kop.

"" "try:smtpObj =smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Succesvol verzonden e-mail" behalve SMTPException:print "Fout:kan geen e-mail verzenden"

Bijlagen als e-mail verzenden

Om een ​​e-mail met gemengde inhoud te verzenden, moet u Content-type . instellen koptekst naar multipart/mixed . Vervolgens kunnen tekst- en bijlagesecties worden opgegeven binnen grenzen .

Een grens wordt gestart met twee koppeltekens gevolgd door een uniek nummer, dat niet in het berichtgedeelte van de e-mail kan verschijnen. Een laatste grens die het laatste deel van de e-mail aangeeft, moet ook eindigen met twee koppeltekens.

Bijgevoegde bestanden moeten worden gecodeerd met de pack("m") functie om base64-codering te hebben vóór verzending.

Voorbeeld

Hieronder volgt het voorbeeld dat een bestand /tmp/test.txt . verzendt als een bijlage. Probeer het een keer −

#!/usr/bin/pythonimport smtplibimport base64filename ="/tmp/test.txt"# Lees een bestand en codeer het in base64 formatfo =open(filename, "rb")filecontent =fo .read()encodedcontent =base64.b64encode(filecontent) # base64sender ='webmaster@tutorialpoint.com'reciever ='amrood.admin@gmail.com'marker ="AUNIQUEMARKER"body ="""Dit is een test-e-mail om te verzenden an bijlage."""# Definieer de hoofdheaders.part1 ="""Van:Van Persoon Aan:Aan Persoon Onderwerp:Bijlage verzendenMIME-Versie:1.0Content -Type:multipart/gemengd; grens=%s--%s""" % (marker, marker)# Definieer het bericht actionpart2 ="""Content-Type:text/plainContent-Transfer-Encoding:8bit%s-- %s""" % (body,marker)# Definieer de bijlage sectionpart3 ="""Content-Type:multipart/mixed; name=\"%s\"Content-Transfer-Encoding:base64Content-Disposition:bijlage; filename=%s%s--%s--""" %(bestandsnaam, bestandsnaam, gecodeerde inhoud, markering)bericht =part1 + part2 + part3t ry:smtpObj =smtplib.SMTP('localhost') smtpObj.sendmail(afzender, ontvanger, bericht) print "E-mail succesvol verzonden" behalve uitzondering:print "Fout:kan e-mail niet verzenden"

Python

  • C Taal
  •   
  • VHDL
  •   
  • Verilog
  •   
  • MATLAB
  •   
  • Python
  •   
  • Java
    1. De Zen van Python (PEP-20 easter egg)
    2. Python List index() met voorbeeld
    3. Python-pasverklaring
    4. Python Get Huidige tijd
    5. Importeer module in Python met voorbeelden
    6. Python @property decorateur