Пишем своего робота на Python. Урок 11
Отправляем письмо с подборкой госконтрактов при помощи модуля smtplib
![Пишем своего робота на Python. Урок 11](https://storage.googleapis.com/static.istories.media/uploaded/images/73d062901c7e4722be110c68551ebe50-1920x960px_1x.png)
Сегодня мы научим нашего робота по анализу госконтрактов отправлять письма.
Для отправки писем в Python есть встроенный модуль smtplib. Импортируем модуль и дополнительные надгрузки в наш проект.
![](https://storage.googleapis.com/static.istories.media/uploaded/images/620e7e41fef8473882fea34a212f64fe-1200xautopx_1x.png)
Наш код уже умеет выгружать контракты с сайта «ГосЗатраты», формировать из них таблицу — теперь осталось только выслать эту таблицу пользователю. Запишем в переменную message то сообщение, которое мы будем высылать. Далее нам понадобится еще несколько переменных.
![](https://storage.googleapis.com/static.istories.media/uploaded/images/969140b23dc440fcbfaee1cc663f98e9-1200xautopx_1x.png)
Первым понадобится список email-адресов, куда мы хотим отправить письмо (email_list) — запишем туда свой адрес. Далее понадобится логин и пароль почты (SENDER_EMAIL и EMAIL_PASSWORD соответственно), с которой письмо будет рассылаться. Возможно, для этого стоит зарегистрировать отдельную почту.
Также будет лучше создать файл config, в котором будет храниться информация о логине и пароле, чтобы она не была доступна никому кроме вас. Теперь пишем функцию send_email_with_contracts (message, email_list) — на вход она получает сообщение, которое нужно отправить, и список получателей письма.
Следом создадим переменную msg, которой зададим тип контента, который мы хотим высылать — в данном случае это alternative. Укажем также тему письма, адрес отправителя рассылки и адреса получателей. Список получателей мы формируем с помощью функции join через запятую. У нас получатель один, но их может быть сколько угодно.
![](https://storage.googleapis.com/static.istories.media/uploaded/images/e2a15bebef7f47629db67bdde61441ac-1200xautopx_1x.png)
Создаем непосредственно письмо. Передаем нашу переменную message и указываем html в качестве типа данных, потому что таблица, которую мы учились делать на прошлых уроках, как раз на HTML. Таблицу мы прикрепляем к письму.
![](https://storage.googleapis.com/static.istories.media/uploaded/images/486f87fd001d4424a76dd330eae001c8-1200xautopx_1x.png)
С помощью сервера Google и безопасного протокола мы заходим в почту-отправителя, передаем логин и пароль и командой send_message отправляем сообщение.
![](https://storage.googleapis.com/static.istories.media/uploaded/images/e4ae3e77f57b415a90c9624e188fa9a7-1200xautopx_1x.png)
Если вы следовали за нашими уроками, то после запуска всего кода на вашу почту должно прийти письмо с подборкой госконтрактов. В следующий раз научим наш код запускаться автоматически. Если у вас что-то не получилось — не стесняйтесь писать в наш чат в Telegram, постараемся помочь.