Почта в Drupal

Почта в Drupal

Настройка почты и обеспечение необходимого функционала на сайте под управлением CMS Drupal, если к тому же необходимо использовать внешний почтовый сервер, осуществляется не сложно, но требует некоторой возни. Итак, по шагам.

Модуль, отправляющий почту в обход PHP mail через внешний SMTP сервер – SMTP Authentication Support  https://drupal.org/project/smtp
Также для него и для почты нужен PHPMailer  https://drupal.org/project/phpmailer, которому, в свою очередь, нужна библиотека PHPMailer library версии старше 5.2.5
https://github.com/PHPMailer/PHPMailer/tags.

Ставим и включаем оба модуля. Архив с библиотекой разворачиваем в папку libraries в подпапку phpmailer так, чтобы в корне этой папки оказался файл class.phpmailer.php. PHPMailer сразу предлагает настроить его – вверху страницы. Настраиваем. Настройки, например, для Gmail SMTP аккаунта следующие:
Сервер: smtp.gmail.com
Порт: 465
SSL: Опция включена

Для настройки отправки сообщений из контактной формы сайта – используем встроенный модуль ядра Contact.

Для отправки почты в формате HTML нужен модуль Mime Mail https://drupal.org/project/mimemail

А модуль Personalized E-mails – пригодится для настройки имени пользователя в данных отправителя.

Следует обратить серьезное внимание, что сервера Google по умолчанию не разрешают использовать себя для отправки сообщений со сторонних сайтов, поэтому сначала ваше письмо не пройдет и будет заблокировано SMTP сервером Google. А в вашем почтовом ящике появится письмо похожего содержания:

Здравствуйте, User!

Недавно кто-то пытался войти в Ваш аккаунт Google [mail@gmail.com],
но мы не дали ему это сделать.

Информация о событии
Дата и время: 7 Февраль 2013 г. 14:32:52 UTC
Страна: неизвестна

Если это были не Вы, перейдите на страницу
https://security.google.com/settings/security/activity
и проверьте, все ли действия в аккаунте были выполнены Вами.
Предупреждаем, что Ваш пароль стал известен другим пользователям.
Измените его как можно скорее.

Если это были Вы Мы рекомендуем использовать для входа в аккаунт
приложения, разработанные Google (например, Gmail).
Также Вы можете отключить некоторые настройки безопасности на странице
https://www.google.com/settings/security/lesssecureapps.
Однако в этом случае защита Вашего аккаунта станет менее надежной.

Для более подробной информации перейдите на
https://support.google.com/accounts/answer/6010255.

С уважением,
команда Google Аккаунтов

Затем вам нужно пройти по ссылке и разрешить использовать SMTP сервер Doogle вашему сайту.

В отличие от популярного движка WordPress, где все деалется само, Drupal чаще позиционируется не как CMS, а как CMF, т.е. среда разработки высокого уровня с модульной труктурой, напоминающая конструктор. В Drupal нет в явном виде такой простой и обыденной функции, как отправка администратору уведомления о появлении нового комментария. Однако, даже в типовой поставке есть все средства для организации такого функционала.

Если вы хотите получать на почту уведомления о новых комментариях, которые оставляют пользователи на сайте, нужно включить системный модуль Trigger.

Затем на странице “Сложные действия” выбираем “Отправить почту..” admin/settings/actions и создаем действие “Отправить почту при появлении нового комментария”

Укажем e-mail на который должны приходить уведомления, текст сообщения и другую необходимую информацию.

В тексте сообщения пишем, например, так:

Посетитель: [comment:name].
IP: [comment:hostname].
Адрес электронной почты [comment:mail].
Статья: "[comment:node:title]".
URL страницы: [comment:node:url])
---------------------------------------------------------------------------
Комментарий:
[comment:body]

Действие готово. На странице admin/build/trigger/comment назначаем это действие событию “Сохранение нового комментария”.

Дальше идем в настройки триггера и на вкладке “Комментарий” назначаем созданное действие на события “После сохранения нового комментария”: выбираем из списка только что созданное действие и нажимаем кнопку “Назначить”.

Теперь почта будет работать и вам в почтовый ящик будут приходить уведомления обо всех комментариях на вашем сайте.