Simple Mail Transfer Protocol (SMTP) se používá jako protokol pro zpracování e-mailového přenosu pomocí Pythonu. Používá se pro směrování e-mailů mezi e-mailovými servery. Jedná se o protokol aplikační vrstvy, který umožňuje uživatelům odesílat poštu jinému uživateli. Příjemce načítá e-maily pomocí protokolů POP (Post Office Protocol) a IMAP (Internet Message Access Protocol) .
Když server naslouchá připojení TCP od klienta, zahájí připojení na portu 587.
Python poskytuje a smtplib modul, který definuje objekt relace klienta SMTP používaný k odesílání e-mailů na internetový počítač. Za tímto účelem musíme importovat smtplib pomocí příkazu import.
$ import smtplib
Pro přenos e-mailu se používá objekt SMTP. K vytvoření objektu smtplib se používá následující syntaxe.
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
Přijímá následující parametry.
Metoda sendmail() objektu SMTP se používá k odeslání pošty na požadovaný počítač. Syntaxe je uvedena níže.
smtpObj.sendmail(sender, receiver, message)
Příklad
#!/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')
Odeslání emailu z gmailu
Existují případy, kdy jsou e-maily odesílány pomocí serveru Gmail SMTP. V tomto případě můžeme předat Gmail jako server SMTP namísto použití localhost s portem 587.
Použijte následující syntaxi.
$ smtpObj = smtplib.SMTP('gmail.com', 587)
Zde se musíme přihlásit k účtu Gmail pomocí uživatelského jména a hesla Gmailu. Pro tento účel poskytuje smtplib metodu login(), která přijímá uživatelské jméno a heslo odesílatele.
Pokud používáte Gmail, může se stát, že vás váš Gmail požádá o přístup k méně bezpečným aplikacím. Aby to fungovalo, musíte to dočasně zapnout.
Zvažte následující příklad.
gimp jak zrušit výběr
Příklad
#!/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')
Odeslání HTML e-mailem
Kód HTML ve zprávě můžeme naformátovat zadáním verze MIME, typu obsahu a znakové sady pro odeslání kódu HTML.
Zvažte následující příklad.
Příklad
#!/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')