logo

Python e-pasta sūtīšana, izmantojot SMTP

Vienkāršais pasta pārsūtīšanas protokols (SMTP) tiek izmantots kā protokols, lai apstrādātu e-pasta pārsūtīšanu, izmantojot Python. To izmanto, lai maršrutētu e-pastus starp e-pasta serveriem. Tas ir lietojumprogrammas slāņa protokols, kas ļauj lietotājiem nosūtīt pastu citam. Saņēmējs izgūst e-pastu, izmantojot protokolus POP (pasta nodaļas protokols) un IMAP (interneta ziņojumu piekļuves protokols) .

Python e-pasta sūtīšana, izmantojot SMTP

Kad serveris klausās TCP savienojumu no klienta, tas sāk savienojumu ar portu 587.

Python nodrošina a smtplib modulis, kas definē SMTP klienta sesijas objektu, ko izmanto, lai nosūtītu e-pastus uz interneta iekārtu. Šim nolūkam mums ir jāimportē smtplib moduli, izmantojot importēšanas paziņojumu.

 $ import smtplib 

SMTP objekts tiek izmantots e-pasta pārsūtīšanai. Lai izveidotu objektu smtplib, tiek izmantota šāda sintakse.

java pārtraukumam
 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

Tas pieņem šādus parametrus.

    saimniekdators:Tas ir tās iekārtas resursdatora nosaukums, kurā darbojas jūsu SMTP serveris. Šeit mēs varam norādīt servera IP adresi, piemēram, ( https://www.javatpoint.com ) vai localhost. Tas ir izvēles parametrs.osta:Tas ir porta numurs, kurā saimniekdators klausās SMTP savienojumus. Pēc noklusējuma tas ir 25.local_hostname:Ja SMTP serveris darbojas jūsu lokālajā datorā, mēs varam minēt vietējās mašīnas resursdatora nosaukumu.

SMTP objekta metode sendmail() tiek izmantota, lai nosūtītu pastu uz vēlamo iekārtu. Sintakse ir norādīta zemāk.

 smtpObj.sendmail(sender, receiver, message) 

Piemērs

 #!/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') 

E-pasta sūtīšana no gmail

Ir gadījumi, kad e-pasta ziņojumi tiek nosūtīti, izmantojot Gmail SMTP serveri. Šajā gadījumā mēs varam nodot Gmail kā SMTP serveri, nevis izmantot vietējo resursdatoru ar portu 587.

Izmantojiet šādu sintaksi.

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

Šeit mums ir jāpiesakās Gmail kontā, izmantojot Gmail lietotājvārdu un paroli. Šim nolūkam smtplib nodrošina login() metodi, kas pieņem sūtītāja lietotājvārdu un paroli.

Ja izmantojat Gmail, jūsu Gmail var pieprasīt piekļuvi mazāk drošām lietotnēm. Lai tas darbotos, tas būs īslaicīgi jāieslēdz.

Python e-pasta sūtīšana, izmantojot SMTP

Apsveriet šādu piemēru.

Piemērs

alfabēta numurs
 #!/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 sūtīšana e-pastā

Mēs varam formatēt ziņojuma HTML, norādot MIME versiju, satura veidu un rakstzīmju kopu, lai nosūtītu HTML.

Apsveriet šādu piemēru.

Piemērs

 #!/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;)