Отправка писем в django проекте с помощью сервиса mandrill

Отправлять email сообщения с сервера можно просто по SMTP протоколу. Но есть другой способ - через специальные сервисы рассылки. Про один такой, mandrill.com, я немного расскажу.

Преимущества относительно SMTP

  • Подробная статистика отправленных писем. Сколько писем отправлено, кому, когда. Сколько писем открыли, какие ссылки нажимали.
  • Шаблоны писем. Их можно редактировать через сервис mandrill, т.о. образом не нужно ничего придумывать в админке django. В шаблоне можно использовать переменные, задавать тему письма, даже адрес отправителя. Из django вы просто указываете, какой шаблон использовать и передаете нужные переменные.
  • Не нужен свой почтовый сервис. И не обязательно подключать свой домен к яндекс/гугл почте (но все же лишним не будет, это удобно).
  • Есть бесплатный тариф, который позволяет отправить 12000 писем в месяц.

Недостатки

  • Для подсчета статистики все ссылки в вашем письме будут заменены на специальные редиректы. Обычный пользователь скорее всего ничего не заметит.
  • В некоторых почтовых клиентах (например gmail в браузере) в поле адресат вместе с указанным вами адресом-отправителем будет так же указан истинный адрес mandrill. Однако можно настроить DNS записи DKIM и SPF для вашего домена, тогда адрес отправителя будет отображаться корректно везде.
  • Если нужно отправить больше 12000 писем в месяц - нужно купить соответствующий тариф.

По-моему, преимущества превышают недостатки.

Подключаем

  1. Регистриуемся https://mandrill.com/signup/

  2. Создаем API_KEY:

Создаем API_KEY шаг 1

Создаем API_KEY шаг 2

Создаем API_KEY шаг 3


  1. Создаем шаблон для письма:

Создаем шаблон для письма шаг 1

Создаем шаблон для письма шаг 2

3.1. Вводим имя шаблона (например template-1):

Вводим имя шаблона


  1. Создаем шаблон письма:

Создаем шаблон письма

Как выглядит статистика

  1. График отправления по времени:

График отправления по времени


  1. График открытия писем и кликов по ссылкам:

График открытия писем и кликов по ссылкам


  1. Список всех отправленных писем:

Список всех отправленных писем


  1. Статистика кликов по каждой ссылке:

Статистика кликов по каждой ссылке


Интеграция с django

В gist’e приведены примеры интеграции с django, а также использования просто из python скрипта.