logo

Python lähettää sähköpostia SMTP:llä

Simple Mail Transfer Protocol (SMTP) -protokollaa käytetään protokollana sähköpostin siirtämiseen Pythonilla. Sitä käytetään sähköpostien reitittämiseen sähköpostipalvelimien välillä. Se on sovelluskerroksen protokolla, jonka avulla käyttäjät voivat lähettää sähköpostia toiselle. Vastaanottaja hakee sähköpostit protokollien avulla POP (Post Office Protocol) ja IMAP (Internet Message Access Protocol) .

font gimp
Python lähettää sähköpostia SMTP:llä

Kun palvelin kuuntelee TCP-yhteyttä asiakkaalta, se aloittaa yhteyden portissa 587.

Python tarjoaa a smtplib moduuli, joka määrittää SMTP-asiakasistuntoobjektin, jota käytetään sähköpostien lähettämiseen Internet-koneeseen. Tätä tarkoitusta varten meidän on tuotava smtplib moduuli tuontikäskyn avulla.

 $ import smtplib 

SMTP-objektia käytetään sähköpostin siirtoon. Seuraavaa syntaksia käytetään smtplib-objektin luomiseen.

 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

Se hyväksyy seuraavat parametrit.

    isäntä:Se on sen koneen isäntänimi, joka käyttää SMTP-palvelinta. Täällä voimme määrittää palvelimen IP-osoitteen, kuten ( https://www.javatpoint.com ) tai localhost. Se on valinnainen parametri.portti:Se on portin numero, jolla isäntäkone kuuntelee SMTP-yhteyksiä. Se on oletuksena 25.local_hostname:Jos SMTP-palvelin on käynnissä paikallisella koneellasi, voimme mainita paikallisen koneen isäntänimen.

SMTP-objektin sendmail()-menetelmää käytetään sähköpostin lähettämiseen haluttuun koneeseen. Syntaksi on annettu alla.

 smtpObj.sendmail(sender, receiver, message) 

Esimerkki

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

Sähköpostin lähettäminen gmailista

Joissakin tapauksissa sähköpostit lähetetään Gmailin SMTP-palvelimen avulla. Tässä tapauksessa voimme välittää Gmailin SMTP-palvelimena sen sijaan, että käyttäisimme paikallispalvelinta portilla 587.

Käytä seuraavaa syntaksia.

 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

Täällä meidän on kirjauduttava Gmail-tiliin Gmail-käyttäjänimellä ja salasanalla. Tätä tarkoitusta varten smtplib tarjoaa login()-menetelmän, joka hyväksyy lähettäjän käyttäjätunnuksen ja salasanan.

kylie jenner ikä

Tämä saattaa saada Gmailisi pyytämään sinulta pääsyä vähemmän turvallisiin sovelluksiin, jos käytät Gmailia. Sinun on otettava tämä tilapäisesti käyttöön, jotta tämä toimii.

Python lähettää sähköpostia SMTP:llä

Harkitse seuraavaa esimerkkiä.

Esimerkki

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: password = input('Enter the password'); smtpObj = smtplib.SMTP('gmail.com',587) smtpobj.login(sender_mail,password) smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

HTML:n lähettäminen sähköpostitse

Voimme muotoilla viestin HTML:n määrittämällä MIME-version, sisältötyypin ja merkistön HTML:n lähettämistä varten.

Harkitse seuraavaa esimerkkiä.

Esimerkki

 #!/usr/bin/python3 import smtplib sender_mail = &apos;[email protected]&apos; receivers_mail = [&apos;[email protected]&apos;] message = &apos;&apos;&apos;From: From Person %s To: To Person %s MIME-Version:1.0 Content-type:text/html Subject: Sending SMTP e-mail <h3>Python SMTP</h3> <strong>This is a test e-mail message.</strong> &apos;&apos;&apos;%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP(&apos;localhost&apos;) smtpObj.sendmail(sender_mail, receivers_mail, message) print(&apos;Successfully sent email&apos;) except Exception: print(&apos;Error: unable to send email&apos;)