Существует немало сторонних библиотек, облегчающих задачу автоматической отправки электронной почты, но в этой статье будет вестись речь об smtplib. Эта библиотека входит в стандартную библиотеку Python, поэтому не требует никакой установки.
Для примера я возьму задачу организации обратной связи с пользователем посредствам отправки email.
Прежде всего нам нужен почтовый ящик, с которого будут отправляться письма. Вы можете использовать для этого свой агент передачи почты, а я в своем примере буду пользоваться почтой gmail. Использование gmail имеет некоторые особенности о которых я расскажу ниже.
Перейдем к самому скрипту:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# Настройки
mail_sender = 'youremail@gmail.com'
mail_receiver = 'somebody@gmail.ru'
username = 'youremail@gmail.com'
password = 'top_secret_password'
server = smtplib.SMTP('smtp.gmail.com:587')
# Формируем тело письма
subject = u'Тестовый email от ' + mail_sender
body = u'Это тестовое письмо оптправлено с помощью smtplib'
msg = MIMEText(body, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
# Отпавляем письмо
server.starttls()
server.ehlo()
server.login(username, password)
server.sendmail(mail_sender, mail_receiver, msg.as_string())
server.quit()
После импорта необходимых библиотек мы настраиваем подключение к почтовому ящику отправителя (mail_sender) и вводим почтовый ящик получателя (mail_reciever). В переменных username и password, как можно понять, будут хранится значения логина и пароля почты. Далее идут настройки SMTP сервера электронной почты. Обычно используется 25 порт. Но в моем случае используется gmail, поэтому нужно соблюсти некоторые правила. Поэтому отправка будет осуществляться через 587 порт.
Особенности отправки почты сторонними приложениями через gmail.
Первая особенность — для отправки почты сторонними приложениями, используется TLS, поэтому в настройках SMTP указываем 587 порт.
Вторая особенность — Необходимо разрешить доступ к аккаунту ненадежных приложений. Установить такое разрешение можно здесь.
Теперь пришла очередь создания тела письма, в этом нам поможет другая стандартная библиотека — email. В этом простом примере используются лишь базовые возможности библиотеки. Для того чтобы создавать более сложные письма, можно использовать модулю MIMEMultipart входящий в библиотеку email.
Метод starttls() осуществляет защищенное подключение к серверу Gmail. Метод login() отвечает за аутентификацию на сервере. А метод sendmail отправляет письмо, принимая в качестве параметров адрес отправителя, адрес получателя и само сообщение.
Вот собственно и все что нужно знать для отправки простых писем с помощью Python.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…