eForm и отправка сообщений через SMTP
В одном из проектов перед нами возникла задача сделать отправку сообщений с сайта через eForm. Форма обратной связи встречается на сайтах довольно часто и делается быстро и просто, но в этом проекте все оказалось не так. Сообщение об успешной отправке появлялось, но письма не приходили. При этом имелся подключенный Weblogin, где письма пользователям с информацией о регистрации приходили без проблем.
Что бы решить возникшую проблему, было потрачено довольно много времени и просмотрено огромное количество информации, которое так и не дало ответа на вопрос. Мы решили поэкспериментировать с настройками сервера - вначале php был запущен как FastCGI, мы изменили его на модуль Apache, и о чудо! Письма с формы начали приходить! Но при этом письма о регистрации приходить перестали. Тут появилась догадка о том, что все дело в скриптах, отвечающих за отправку почты.
В итоге, для решения проблемы было сделано:
- Php был обратно переключен на режим FastCGI
- Скачана последняя версия PHPMailer 5.1
- В папку manager/includes/controls/ был добавлен файл class.smtp.php
- В файле assets/snippets/eform/eform.inc.php все строчки $mail->IsMail(); были заменены на $mail->IsSMTP(); - их там пять
После этого eForm стал отправлять письма через протокол SMTP и они начали доходить до адресата. Ура!
Будем рады, если кому-нибудь мы смогли помочь, потому что сами не смогли найти подобную информацию, когда она была нам так нужна.
