Отправка почты с сайта является одним из важных способов взаимодействия клиента с сайтом. Почтовые письма отправляются в случае использования посетителем формы обратной связи или для подтверждения регистрации на сайте. Если сайт является интернет магазином, то почтовые письма являются удобным способом оповещения клиента о доставке товаров.
Чтобы письма успешно отправлялись с вашего сайта и не попадали в папку “СПАМ”, необходима корректная настройка почты со стороны хостинга, а также, скриптов отправки писем со стороны сайта.
В данной статье мы рассмотрим два основных способа отправки почты с сайта, работающего на CMS Drupal, это отправка с помощью PHP функции mail() и отправка с помощью SMTP-подключения к почтовому серверу. Способ с SMTP мы будем реализовывать с помощью стороннего модуля, который необходимо установить.
1. Прежде чем мы приступим к настройке, необходимо подготовить почтовый ящик, который будет использоваться для отправки почты с вашего сайта.
Создадим его одним из следующих образов, в зависимости от того, через какой интерфейс вы работаете:
Если вы хотите отправлять почту с вашего сайта с помощью PHP mail, то на этом настройка почты будет завершена. Подробнее про выбор метода отправки почты смотрите в FAQ по отправке почты.
Если вы хотите настроить почту для отправки через SMTP, тогда продолжим настройку.
Для отправки почты через SMTP, вам необходимо установить дополнительные модули. Существует несколько различных расширений для отправки почты в drupal через SMTP, но мы будем рассматривать PHPMailer SMTP. Мы рассмотрим установку и настройку данного модуля, а также, модуля Mail System, который требуется для работы PHPMailer. На примере данной инструкции вы сможете настроить любое другое расширение для работы почты через SMTP.
4. Установим следующий модуль стандартными средствами drupal. Подробнее про установку модулей вы можете узнать в данной статье: Как установить модуль (расширение) в Drupal?
5. Модуль PHPMailer SMTP в drupal версии 8 и 9 устанавливается через composer.
Перед использованием composer, установим на вашей услуге хостинга консольную версию PHP 7.4, следующим образом: Как изменить консольную версию PHP по умолчанию?
Если вы используете иную панель управления, либо работете без панели управления, необходимо будет убедиться, что на вашем сервере установлена консольная версия PHP 7.0 и выше. Подробнее про способ проверки версии PHP, вы узнаете ниже.
Composer присутствует на всех наших платных услугах виртуального хостинга, но чтобы им воспользоваться, необходимо подключиться к вашей услуге хостинга по ssh: Как подключиться к SSH хостинга?
Когда вы подключитесь к вашей услуге хостинга по ssh, вы попадете в корневой каталог вашей услуги хостинга, по аналогии с тем, если вы зайдете в менеджер файлов, либо подключитесь к услуге по FTP.
0) Первое что необходимо сделать, это проверить консольную версию PHP вашей услуги хостинга. Для этого, введите в терминал команду:
php -v
Если вы увидите версию PHP выше 7.0, можно продолжать устанавливать модуль.
1) Чтобы произвести установку нужного модуля, для начала необходимо перейти в каталог вашего сайта, на который этот модуль необходимо установить.
Для этого воспользуемся следующей командой:
cd ~/www/example.h1n.ru, где вместо example.h1n.ru, укажите домен вашего сайта.
Если команда будет указана верно, то вы не увидите никакой новой информации на экране.
Примечание. В примере указана команда для сайта, который добавлен в панели управления ISPmanager, с настройками корневой директории сайта по умолчанию. Если вы используете другую панель управления, либо ваш сайт находится в директории, отличной от каталога по умолчанию, то сначала вам нужно определить, в какой директории находится ваш сайт. Для этого воспользуйтесь данной статьей: Куда загружать сайт?
2) Чтобы понять, что мы находимся в нужной директории, введем команду:
ls -a
Данная команда покажет все файлы и папки, которые есть в текущей директории. Если вы узнаете в них каталоги и файлы вашего сайта, значит, вероятно вы находитесь в нужной директории.
3) Введем следующую команду в терминал и нажмем enter:
composer require drupal/phpmailer_smtp
Запустится процесс установки.
Через некоторое время, модуль будет установлен.
6. После установки данного модуля, активируем его:
7. Зайдем в раздел админской части Конфигурация, найдем там PHPmailer SMTP и нажмем на данный пункт:
8. Произведем настройку SMTP-подключения.
Параметры, которые необходимо настроить подчеркнуты на скриншоте:
Бо́льшую часть данных настроек можно найти следующим образом:
Приступим к настройке:
1) В поле Главный SMTP-сервер укажем почтовый домен Вашего сайта. Как правило, он имеет следующий вид: mail.example.ru, где вместо example.ru - ваш домен.
2) В пункте Использовать безопасный протокол выберем один из вариантов шифрования. Для использования вариантов с SSL или TLS, у вашего почтового домена должен быть выпущен SSL-сертификат. Если вы настроите шифрование на SSL или TLS, при этом у почтового домена не будет SSL-сертификата, то почта не будет отправляться (См. FAQ по отправке почты).
3) В пункте SMTP-порт, установим порт, в зависимости от того, что вы выбрали в пункте с шифрованием.
Без шифрования: 25 порт;
С шифрованием SSL: 465 порт;
С шифрованием TLS: 587 порт.
4) В пункте Имя пользователя укажем почтовый ящик, который Вы собираетесь использовать для отправки писем и который был создан ранее.
5) В пункте Пароль, указываем пароль от почтового ящика, который указали в пункте 4) данной инструкции.
6) Сохраняем настройки, нажав на кнопку:
Пример получившейся конфигурации:
Кроме того, в списке настроек есть есть подраздел ADVANCED SMTP SETTINGS. Вы можете настроить пункты в данном разделе необходимым вам образом, либо оставить все как есть.
Если настройка была сделана корректно, то письма должны отправляться с вашего сайта без возникновения проблем. Однако, существует множество нюансов, связанных с работой почты. Рекомендуем ознакомиться с FAQ по отправке почты. Если у вас возникнут проблемы с отправкой почты, вы всегда можете обратиться в нашу техническую поддержку.