Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python
Code

Отправка писем в Python с помощью SMTP

by
Difficulty:IntermediateLength:MediumLanguages:

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

В этом руководстве вы познакомитесь с SMTP, модулем Python, используемым для отправки почты. Также будет продемонстрировано, как отправлять различные типы электронных писем, такие как простые текстовые электронные письма, электронные письма с вложениями и электронные письма с содержимым HTML.

Введение в SMTP

Протокол SMTP (Simple Mail Transfer Protocol) обрабатывает отправку и маршрутизацию электронной почты между почтовыми серверами.

В Python модуль smtplib определяет объект сеанса клиента SMTP, который можно использовать для отправки почты на любой компьютер Интернета с демоном прослушивателя SMTP или ESMTP.

Вот как создать объект SMTP.

Создаём и отправляем простое электронное письмо

Следующий скрипт позволит вам отправить электронное письмо через SMTP-сервер Gmail. Тем не менее, Google не разрешит вход через smtplib, поскольку этот тип входа помечен как «менее безопасный». Чтобы решить эту проблему, перейдите на страницу https://www.google.com/settings/security/lesssecureapps, когда вы вошли в свою учетную запись Google, и «Разрешить менее безопасные приложения». Смотрите скриншот ниже.

Create and Send a Simple Email

Мы выполним следующие шаги для выполнения этого процесса:

  • Создайте объект SMTP для подключения к серверу.
  • Войдите в свою учетную запись.
  • Определите заголовки сообщений и учетные данные для входа.
  • Создайте объект сообщения MIMEMultipart и присоедините к нему соответствующие заголовки, т. е. From, To и Subject.
  • Прикрепить сообщение к сообщению MIMEMultipart объекта.
  • Наконец, отправьте сообщение.

Этот процесс очень прост, как показано ниже.

Обратите внимание, что адреса «Кому» и «От» должны быть явно включены в заголовки сообщения.

Создаём и отправляем электронное письмо с приложением

В этом примере мы собираемся отправить электронное письмо с вложенным изображением. Процесс аналогичен отправке простого текстового электронного письма.

  • Создайте объект SMTP для подключения к серверу.
  • Войдите в свою учетную запись.
  • Определите заголовки сообщений и учетные данные для входа.
  • Создайте объект сообщения MIMEMultipart и присоедините к нему соответствующие заголовки, т. е. From, To и Subject.
  • Прочитайте и приложите изображение к сообщению объекта MIMEMultipart.
  • Наконец, отправьте сообщение.

Класс MIMEImage является подклассом MIMENonMultipart, который используется для создания объектов сообщений MIME типов изображений. Другие доступные классы включают
MIMEMessage и MIMEAudio.

Создание и отправка сообщений электронной почты в формате HTML

Первое, что мы собираемся сделать, это создать шаблон электронной почты в формате HTML.

Создать шаблон HTML

Вот код HTML для шаблона, и он содержит два столбца таблицы, каждый с изображением и содержимым предварительного просмотра. Если вы предпочитаете готовое профессиональное решение, воспользуйтесь нашими лучшими почтовыми шаблонами. У нас есть несколько адаптивных опций с легко настраиваемыми функциями, с которых можно начать.

Шаблон будет выглядеть примерно так:

The HTML Template

Ниже приведен скрипт для отправки электронного письма с HTML-контентом. Содержимое шаблона будет нашим почтовым сообщением.

Выполните ваш код, и если ошибки не возникнет, значит, письмо успешно отправлено. Теперь перейдите в папку «Входящие», и вы должны увидеть своё электронное письмо в виде HTML-контента, красиво отформатированного.

Formatted HTML email

Заключение

Этот учебник охватывает большую часть того, что необходимо для отправки электронных писем для вашего приложения. Для отправки электронной почты доступно несколько API, поэтому вам не нужно начинать с нуля, например, SendGrid, но также важно понимать основы. Для получения дополнительной информации посетите документацию Python.

Кроме того, не стесняйтесь посмотреть, что у нас есть для продажи и для обучения на Envato Market, и, пожалуйста, задавайте любые вопросы и оставляйте ценные отзывы, используя канал ниже.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.