logo

Надсилання електронної пошти Python за допомогою SMTP

Простий протокол передачі електронної пошти (SMTP) використовується як протокол для обробки електронної пошти за допомогою Python. Він використовується для маршрутизації електронних листів між серверами електронної пошти. Це протокол прикладного рівня, який дозволяє користувачам надсилати пошту іншим користувачам. Одержувач отримує електронну пошту за допомогою протоколів POP (протокол поштового відділення) і IMAP (протокол доступу до повідомлень Інтернету) .

css для обтікання текстом
Надсилання електронної пошти 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.local_hostname:Якщо SMTP-сервер працює на вашій локальній машині, ми можемо згадати ім’я хоста локальної машини.

Метод sendmail() об’єкта SMTP використовується для надсилання пошти на потрібну машину. Синтаксис наведено нижче.

гра pigeon на андроїд
 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 замість використання локального хосту з портом 587.

Використовуйте наступний синтаксис.

щось для bfs
 $ 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.

Розглянемо наступний приклад.

штучна нейронна мережа

приклад

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