Мы организуем конференцию для веб-разработчиков и решили обзвонить Челябинские веб-студии. Нужно было как-то сразу после звонка отправить красивое письмо. Также важно получать отчеты о доставке писем и “кликабельности” ссылок (первое на случай опечатки, а второе для оценки затеи). Да, и это все нужно “еще вчера”, а программисты не доступны.

Челлендж принят! И элегантное решение уже под катом...

В общих чертах реализация выглядит так:
  • в 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). Пароль администратора в архиве.

И немного настроек:
  1. Идите в /admin/config/system/site-information (Конфигурация -> Информация о сайте) и укажите email с которого будите отправлять письма в поле “E-mail адрес”.
  2. А теперь в /admin/config/system/phpmailer (Конфигурация -> PHPMailer) и заполните поля данными из mandrillapp.com/settings/index (здесь же можно указать свой email, чтобы проверить настройки):


  3. Форма доступна только авторизованным пользователям, а регистрация новых пользователей — только администратору, поэтому вам нужно зарегистрировать аккаунты (или несколько) для операторов колл-центра. Для этого идете на /admin/people/create (Пользователи -> Добавить пользователя) и заполняете все поля (роль ни какую не ставим, а вот уведомить о создании учетки может быть удобно):



    Если сделаете несколько аккаунтов, то сможете потом посмотреть на продуктивность операторов на странице Результаты (закладка на главной). Кстати, да, форма выводится как главная страница.
  4. Ну и осталось настроить само письмо. На следующем шаге мы разберемся с кодом письма, а пока давайте сделаем что-нибудь тестовое:
    • идите на страницу /node/6/webform/emails/1 (на странице формы: Опросник -> Настройка оповещений -> Правка напротив единственного оповещения) и укажите имя и адрес отправителя, тему письма;
    • в поле “Шаблон e-mail” можно указать что-нибудь html-содержащее, позже мы сюда вернемся со своим кодом письма;
    • сохраняйте все и отправляйте тестовое приглашение (с главной), письмо должно прийти.

    Кстати, если вам потребуется слать не простые статичные письма, а что-нибудь посложнее, то можно добавить полей в форму и вставлять их значение в письмо через токены.

3. Собираем письмо


Прежде всего, хочу напомнить, что письма должны быть особым образом сверстаны. На хабре много статей на этот счет. Возможно, в комментариях подскажут сносный конструктор, который позволяет получить код письма. Я же стянул код из рассылки, которую мы делали в аналоге MailChimp (через ссылку на веб-версию письма). В следующий раз попробую использовать github.com/mailgun/transactional-email-templates.

4. Profit!


Осталось только дать оператору адрес где вы развернули сайт, логин, пароль и письма полетели:



Вот и все, что я хотел рассказать про отправку писем колл-центром. Что думаете, коллеги?