logo

Python изпраща имейл чрез SMTP

Simple Mail Transfer Protocol (SMTP) се използва като протокол за обработка на имейл трансфера с помощта на Python. Използва се за маршрутизиране на имейли между имейл сървъри. Това е протокол на приложния слой, който позволява на потребителите да изпращат поща до друг. Получателят извлича имейл с помощта на протоколите POP (Пощенски протокол) и IMAP (Протокол за достъп до интернет съобщения) .

java arraylist сортиран
Python изпраща имейл чрез SMTP

Когато сървърът слуша за TCP връзка от клиент, той инициира връзка на порт 587.

Python предоставя a smtplib модул, който дефинира обект на SMTP клиентска сесия, използван за изпращане на имейли до интернет машина. За тази цел трябва да импортираме smtplib модул с помощта на оператора за импортиране.

 $ import smtplib 

SMTP обектът се използва за прехвърляне на имейл. Следният синтаксис се използва за създаване на обекта smtplib.

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

Приема следните параметри.

    домакин:Това е името на хоста на машината, която изпълнява вашия SMTP сървър. Тук можем да посочим IP адреса на сървъра като ( https://www.javatpoint.com ) или localhost. Това е незадължителен параметър.порт:Това е номерът на порта, на който хост машината слуша SMTP връзките. По подразбиране е 25.име на локален_хост:Ако SMTP сървърът работи на вашата локална машина, можем да споменем името на хоста на локалната машина.

Методът sendmail() на SMTP обекта се използва за изпращане на пощата до желаната машина. Синтаксисът е даден по-долу.

релационна алгебра в rdbms
 smtpObj.sendmail(sender, receiver, message) 

Пример

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

Изпращане на имейл от gmail

Има случаи, когато имейлите се изпращат чрез SMTP сървъра на Gmail. В този случай можем да предадем Gmail като SMTP сървър, вместо да използваме localhost с порт 587.

Използвайте следния синтаксис.

киселинни свойства в dbms
 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

Тук трябва да влезем в акаунта в Gmail с потребителско име и парола за Gmail. За тази цел smtplib осигурява метода login(), който приема потребителското име и паролата на подателя.

Това може да накара вашия Gmail да поиска от вас достъп до по-малко сигурни приложения, ако използвате Gmail. Ще трябва временно да включите това, за да работи.

Python изпраща имейл чрез SMTP

Помислете за следния пример.

Пример

 #!/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 по имейл

Можем да форматираме HTML в съобщението, като посочим MIME версията, типа на съдържанието и набора от знаци, за да изпратим HTML.

Помислете за следния пример.

scan.nextstring java

Пример

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