Отправка писем в django проекте с помощью сервиса mandrill
Отправлять email сообщения с сервера можно просто по SMTP протоколу. Но есть другой способ - через специальные сервисы рассылки. Про один такой, mandrill.com, я немного расскажу.
Преимущества относительно SMTP
- Подробная статистика отправленных писем. Сколько писем отправлено, кому, когда. Сколько писем открыли, какие ссылки нажимали.
- Шаблоны писем. Их можно редактировать через сервис mandrill, т.о. образом не нужно ничего придумывать в админке django. В шаблоне можно использовать переменные, задавать тему письма, даже адрес отправителя. Из django вы просто указываете, какой шаблон использовать и передаете нужные переменные.
- Не нужен свой почтовый сервис. И не обязательно подключать свой домен к яндекс/гугл почте (но все же лишним не будет, это удобно).
- Есть бесплатный тариф, который позволяет отправить 12000 писем в месяц.
Недостатки
- Для подсчета статистики все ссылки в вашем письме будут заменены на специальные редиректы. Обычный пользователь скорее всего ничего не заметит.
- В некоторых почтовых клиентах (например gmail в браузере) в поле адресат вместе с указанным вами адресом-отправителем будет так же указан истинный адрес mandrill. Однако можно настроить DNS записи DKIM и SPF для вашего домена, тогда адрес отправителя будет отображаться корректно везде.
- Если нужно отправить больше 12000 писем в месяц - нужно купить соответствующий тариф.
По-моему, преимущества превышают недостатки.
Подключаем
-
Регистриуемся https://mandrill.com/signup/
-
Создаем API_KEY:
- Создаем шаблон для письма:
3.1. Вводим имя шаблона (например template-1):
- Создаем шаблон письма:
Как выглядит статистика
- График отправления по времени:
- График открытия писем и кликов по ссылкам:
- Список всех отправленных писем:
- Статистика кликов по каждой ссылке:
Интеграция с django
В gist’e приведены примеры интеграции с django, а также использования просто из python скрипта.