Найти в Дзене

Рассылаем красивые письма из Python

Знаете ли вы, что можете отправлять электронные письма из Python? Мало того, вы можете также отправлять и файлы. А обычные черный текст – белый фон в теле письма заменить на HTML-разметку.

В тестах мы будем использовать учетную запись Gmail. Прежде всего, зарегистрируйтесь в Gmail (если еще не зарегистрированы) и включите “Менее безопасный доступ к приложению”. Вы можете сделать это здесь: https://myaccount.google.com/u/0/security?hl=ru&pli=1.

Начнем с самого простого. Напишем скрипт, который отправляет электронное письмо из нашей учетной записи.

import smtplib, ssl

# Конфигурация
sender_email = YOUR_EMAIL
receiver_email = RECEIVER_EMAIL
password = input('Пожалуйста, введите свой пароль:\n')

# Текст письма
email_body = '''
This is a test email sent by Python. Isn't that cool?
'''

Модуль smtplib нужен для создания сеанса SMTP (Simple Mail Transfer Protocol). С его помощью мы сможем отправить любое электронное письмо. ssl – предоставляет доступ к безопасному соединению TLS (Transport Layer Security).

Мы добавили некоторые переменные, такие как электронная почта отправителя (sender_email) и получателя (receiver_email), запрос пользователю ввести пароль электронной почты (password) и текст сообщения (email_body). Замените значения в верхнем регистре вашими. Для тестирования я использую тот же адрес электронной почты.

После того, как мы настроили наши данные, напишем код, который будет отправлять письма.

try:
# Создание сеанса SMTP | использовать 587 с TLS, 465 SSL и 25 порт
server = smtplib.SMTP('smtp.gmail.com', 587)
# Зашифровываем почту
context = ssl.create_default_context()
server.starttls(context=context)
# Входим в учетную запись Google
server.login(sender_email, password)
# Отправка письма получателю
server.sendmail(sender_email, receiver_email, email_body)
print('Письмо отправлено!')
except Exception as e:
print(f'Ошибка:\n {e}')
finally:
print('Закрытие сервера ...')
server.quit()

Так как мы используем Gmail, то указываем хост smtp.gmail.com и порт 587. Продолжение: https://pythonlab.info/send-beautiful-email-with-python/