logo

„Python“ el. pašto siuntimas naudojant SMTP

Paprastas pašto perdavimo protokolas (SMTP) naudojamas kaip protokolas el. pašto perdavimui naudojant Python. Jis naudojamas el. laiškams nukreipti tarp el. pašto serverių. Tai programos lygmens protokolas, leidžiantis vartotojams siųsti laiškus kitam. Gavėjas nuskaito el. laiškus naudodamas protokolus POP (pašto protokolas) ir IMAP (interneto pranešimų prieigos protokolas) .

„Python“ el. pašto siuntimas naudojant SMTP

Kai serveris klauso TCP ryšio iš kliento, jis inicijuoja ryšį per 587 prievadą.

Python suteikia a smtplib modulis, kuris apibrėžia SMTP kliento seanso objektą, naudojamą siunčiant el. laiškus į interneto įrenginį. Šiuo tikslu turime importuoti smtplib modulį naudodami importo teiginį.

 $ import smtplib 

SMTP objektas naudojamas el. pašto perdavimui. Ši sintaksė naudojama smtplib objektui sukurti.

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

Jis priima šiuos parametrus.

    šeimininkas:Tai įrenginio, kuriame veikia jūsų SMTP serveris, pagrindinio kompiuterio pavadinimas. Čia galime nurodyti serverio IP adresą, pvz., ( https://www.javatpoint.com ) arba localhost. Tai neprivalomas parametras.prievadas:Tai prievado numeris, kuriame pagrindinis kompiuteris klausosi SMTP ryšių. Pagal numatytuosius nustatymus jis yra 25.local_hostname:Jei SMTP serveris veikia jūsų vietiniame kompiuteryje, galime paminėti vietinio kompiuterio pagrindinio kompiuterio pavadinimą.

SMTP objekto sendmail() metodas naudojamas paštui išsiųsti į norimą įrenginį. Sintaksė pateikta žemiau.

 smtpObj.sendmail(sender, receiver, message) 

Pavyzdys

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

Laiškų siuntimas iš gmail

Pasitaiko atvejų, kai laiškai siunčiami naudojant „Gmail“ SMTP serverį. Tokiu atveju galime perduoti „Gmail“ kaip SMTP serverį, o ne naudoti „localhost“ su 587 prievadu.

Naudokite šią sintaksę.

java prioritetų eilė
 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

Čia turime prisijungti prie „Gmail“ paskyros naudodami „Gmail“ vartotojo vardą ir slaptažodį. Šiuo tikslu smtplib pateikia prisijungimo () metodą, kuris priima siuntėjo vartotojo vardą ir slaptažodį.

Dėl to „Gmail“ gali paprašyti prieigos prie mažiau saugių programų, jei naudojate „Gmail“. Turėsite laikinai ĮJUNGTI, kad tai veiktų.

„Python“ el. pašto siuntimas naudojant SMTP

Apsvarstykite toliau pateiktą pavyzdį.

Pavyzdys

 #!/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 siuntimas el

Galime suformatuoti pranešimo HTML nurodydami MIME versiją, turinio tipą ir simbolių rinkinį HTML siuntimui.

Apsvarstykite toliau pateiktą pavyzdį.

Pavyzdys

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