Az Simple Mail Transfer Protocol (SMTP) protokoll a Python használatával történő e-mail-átvitel kezelésére szolgál. Az e-mailek e-mail szerverek közötti továbbítására szolgál. Ez egy alkalmazási réteg protokoll, amely lehetővé teszi a felhasználók számára, hogy leveleket küldjenek másoknak. A címzett lekéri az e-maileket a protokollok használatával POP (Post Office Protocol) és IMAP (Internet Message Access Protocol) .
Amikor a kiszolgáló egy ügyfél TCP-kapcsolatára figyel, kapcsolatot kezdeményez az 587-es porton.
A Python biztosítja a smtplib modul, amely meghatározza az SMTP-kliens munkamenet objektumot, amelyet az e-mailek internetes gépre küldésére használnak. Ebből a célból importálnunk kell a smtplib modult az import utasítás használatával.
$ import smtplib
Az SMTP objektumot az e-mail átvitelhez használják. A következő szintaxist használjuk az smtplib objektum létrehozásához.
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
A következő paramétereket fogadja el.
Az SMTP objektum sendmail() metódusa a levelek elküldésére szolgál a kívánt gépre. A szintaxis alább látható.
smtpObj.sendmail(sender, receiver, message)
Példa
#!/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-mail küldése gmailből
Vannak esetek, amikor az e-maileket a Gmail SMTP-szerverén keresztül küldik. Ebben az esetben a Gmailt átadhatjuk SMTP-szervernek, ahelyett, hogy a localhost-ot használnánk az 587-es porttal.
Használja a következő szintaxist.
$ smtpObj = smtplib.SMTP('gmail.com', 587)
Itt be kell jelentkeznünk a Gmail fiókba Gmail felhasználónévvel és jelszóval. Erre a célra az smtplib biztosítja a login() metódust, amely elfogadja a küldő felhasználónevét és jelszavát.
Emiatt előfordulhat, hogy a Gmail hozzáférést kér a kevésbé biztonságos alkalmazásokhoz, ha Gmailt használ. Ideiglenesen be kell kapcsolnia, hogy működjön.
Tekintsük a következő példát.
Példa
#!/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 küldése e-mailben
Az üzenetben lévő HTML-kódot úgy tudjuk formázni, hogy megadjuk a MIME verzióját, a tartalomtípust és a karakterkészletet a HTML elküldéséhez.
Tekintsük a következő példát.
Példa
#!/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')