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) .
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.
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ų.
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 = '[email protected]' receivers_mail = ['[email protected]'] message = '''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> '''%(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')