Мы организуем конференцию для веб-разработчиков и решили обзвонить Челябинские веб-студии. Нужно было как-то сразу после звонка отправить красивое письмо. Также важно получать отчеты о доставке писем и “кликабельности” ссылок (первое на случай опечатки, а второе для оценки затеи). Да, и это все нужно “еще вчера”, а программисты не доступны.
Челлендж принят! И элегантное решение уже под катом...
В общих чертах реализация выглядит так:
Mandrill — это сервис доставки писем от MailChimp. Для нас важно, что он предоставляет SMTP-интерфейс и нужные нам отчеты. Вместо него можно взять и другой подобный. Итак:
На этом же шаге вам стоит определиться с адресом, с которого письма будут уходить. Также рекомендую настроить пересылку писем от туда к себе, т.к. люди будут писать в ответ на вашу рассылку.
Стоит отметить, что на старте вам будет доступно 12 000 бесплатных писем и 250 отправлений в час. Далее квота будет расти, если вы не спамите. Или падать, как у нас, если забудете добавить ссылку отписки от рассылки.
Дабы не усложнять задачу, предлагаю вам скачать преднастроенную сборку. Вам остается только распаковать файлы в папке хоста, залить дамп в базу и поменять реквизиты подключения к базе данных в файле /sites/default/settings.php (со строки 18). Пароль администратора в архиве.
И немного настроек:
Прежде всего, хочу напомнить, что письма должны быть особым образом сверстаны. На хабре много статей на этот счет. Возможно, в комментариях подскажут сносный конструктор, который позволяет получить код письма. Я же стянул код из рассылки, которую мы делали в аналоге MailChimp (через ссылку на веб-версию письма). В следующий раз попробую использовать github.com/mailgun/transactional-email-templates.
Осталось только дать оператору адрес где вы развернули сайт, логин, пароль и письма полетели:
Вот и все, что я хотел рассказать про отправку писем колл-центром. Что думаете, коллеги?
Челлендж принят! И элегантное решение уже под катом...
В общих чертах реализация выглядит так:
- в mandrill.com настраиваем SMTP, DKIM, SPF (последних два для повышения доли доставленных писем), там же будем смотреть отчеты;
- разворачиваем Drupal, настраиваем отправку html-писем через smtp и модуль webform (он умеет отправлять письма на адрес, указанный в форме);
- закрываем форму от внешнего мира;
- создаем письмо и запихиваем его в нашу форму;
- показываем оператору как авторизоваться и куда вводить адрес приглашаемого.
1. Получаем SMTP с плюшками
Mandrill — это сервис доставки писем от MailChimp. Для нас важно, что он предоставляет SMTP-интерфейс и нужные нам отчеты. Вместо него можно взять и другой подобный. Итак:
- регистрируйтесь, и сразу идите в раздел Settings, добавьте API Key, он будет паролем, здесь же SMTP-реквизиты;
- далее в подраздел Sending Domains для подтверждения домена, активации DKIM и добавления SPF-записи (вам потребуется доступ к DNS домена с которого будут отправляться письма, рекомендую ПДД от Яндекса или cloudflare.com).
На этом же шаге вам стоит определиться с адресом, с которого письма будут уходить. Также рекомендую настроить пересылку писем от туда к себе, т.к. люди будут писать в ответ на вашу рассылку.
Стоит отметить, что на старте вам будет доступно 12 000 бесплатных писем и 250 отправлений в час. Далее квота будет расти, если вы не спамите. Или падать, как у нас, если забудете добавить ссылку отписки от рассылки.
2. Разворачиваем Друпал и настраиваем отправку писем
Дабы не усложнять задачу, предлагаю вам скачать преднастроенную сборку. Вам остается только распаковать файлы в папке хоста, залить дамп в базу и поменять реквизиты подключения к базе данных в файле /sites/default/settings.php (со строки 18). Пароль администратора в архиве.
И немного настроек:
- Идите в /admin/config/system/site-information (Конфигурация -> Информация о сайте) и укажите email с которого будите отправлять письма в поле “E-mail адрес”.
- А теперь в /admin/config/system/phpmailer (Конфигурация -> PHPMailer) и заполните поля данными из mandrillapp.com/settings/index (здесь же можно указать свой email, чтобы проверить настройки):
- Форма доступна только авторизованным пользователям, а регистрация новых пользователей — только администратору, поэтому вам нужно зарегистрировать аккаунты (или несколько) для операторов колл-центра. Для этого идете на /admin/people/create (Пользователи -> Добавить пользователя) и заполняете все поля (роль ни какую не ставим, а вот уведомить о создании учетки может быть удобно):
Если сделаете несколько аккаунтов, то сможете потом посмотреть на продуктивность операторов на странице Результаты (закладка на главной). Кстати, да, форма выводится как главная страница.
- Ну и осталось настроить само письмо. На следующем шаге мы разберемся с кодом письма, а пока давайте сделаем что-нибудь тестовое:
- идите на страницу /node/6/webform/emails/1 (на странице формы: Опросник -> Настройка оповещений -> Правка напротив единственного оповещения) и укажите имя и адрес отправителя, тему письма;
- в поле “Шаблон e-mail” можно указать что-нибудь html-содержащее, позже мы сюда вернемся со своим кодом письма;
- сохраняйте все и отправляйте тестовое приглашение (с главной), письмо должно прийти.
Кстати, если вам потребуется слать не простые статичные письма, а что-нибудь посложнее, то можно добавить полей в форму и вставлять их значение в письмо через токены.
3. Собираем письмо
Прежде всего, хочу напомнить, что письма должны быть особым образом сверстаны. На хабре много статей на этот счет. Возможно, в комментариях подскажут сносный конструктор, который позволяет получить код письма. Я же стянул код из рассылки, которую мы делали в аналоге MailChimp (через ссылку на веб-версию письма). В следующий раз попробую использовать github.com/mailgun/transactional-email-templates.
4. Profit!
Осталось только дать оператору адрес где вы развернули сайт, логин, пароль и письма полетели:
Вот и все, что я хотел рассказать про отправку писем колл-центром. Что думаете, коллеги?
Комментарии (8)
armab
09.05.2015 01:43А Mandrill DKIM подписывает с помощью rsa-sha1 или rsa-sha256? Сколько таких почтовых сервисов ни пробывал — все на старом sha1.
По подобным причинам не нравятся подобные сервисы — нельзя сконфигурировать все под свои нужды.questor
10.05.2015 14:55+1Массовые сервисы потому и массовые, что не могут каждого индивидуально обслужить. Вам в сторону собственного сервера с postfix и opendkim смотреть надо, думаю, впрочем, что у вас уже что-то подобное готово.
questor
Итак, это элегантное решение делал не программист. А теперь попробуем представить,
сколько программистов потребуется, чтобы вкрутить лампочкучем бы отличалось итоговое (не менее элегантное решение) от описанного в статье. Найди десять отличий!Abyasov Автор
Ну, это реальная задача и реальное решение. В некоторых задачах главное, чтобы работало.
А идея статьи — показать, что современный друпал дает клевые инструменты даже менеджерам, админам и начинающим разработчикам.
questor
Собственно о том и речь. Нубская задача, начинающий разработчик, уровень статьи позволяет воскликнуть «хабр не торт». Был это не друпал, а какой-нибудь битрикс — уже нахватали бы минусов за тривиальный тьюториал.
А, всё ж один уже поймали. Ну, глядишь этим и ограничится, пятница всё ж и праздники на носу.
Abyasov Автор
Ну вот вы с какой целью всех по себе меряете? Люди разные, есть не только «нубы», есть еще специалисты из смежных областей IT.
С другой стороны — посмотрите количество добавления в избранное и сделайте выводы.
Вы так расстраиваетесь, как-будто я последние байты в СХД занял статьей, ну ей-богу ))