phpbb3 Настройка отправки сообщений с форума через службы Яндекс. Решение ssmtp на Debian
При установке на свой сайт форума phpbb3 столкнулся с проблемой. Все письма которые отсылались с форума например для подтверждения регистрации или отправки сообщений на почту через профиль пользователя резались в спам.
При просмотре оригинала письма, т.е. с полным просмотром заголовков увидел, что в качестве отправителя указан www-data@moivps, то есть фактически отправитель не совпадал с полем отправитель в письме.
При написании собственных скриптов эта проблема обходилась без проблем, но так как мои познания в структуре кода phpbb3 минимальный полез в гугл решать вопрос более простым путем.
После недолгого поиска нашел решение данной проблемы, но вариант этот подходит только для небольшого числа хостов и пользователей.
Решение состоит в установке и замене стандартного MTA exim на ssmtp. Преимущество в том, что не нужно нагружать сервер лишними программами и по своему принципу ssmtp подгружается только в случае его вызова. Т.е. он будет загружаться только при использовании функции mail. И после отправки выгружаться из памяти. Кстати то что используется функция mail() очень важно, почему будет ясно ниже. Для переправки почты будет использоваться Яндекс службы для домена, хотя службы Google настраиваются аналогично.
Допустим привяжем к службам Яндекса домен example.ru
Итак приступим к установке:
apt-get install ssmtp
При установке автоматом будет удален пакет exim. После этого отправка почты отвалится до того как вы настроите конфигурационные файлы. Они расположены как обычно: /etc/ssmtp/
Правим ssmtp.conf для нашего домена example.ru
root=myemail@example.ru
mailhub=smtp.yandex.ru:465
AuthUser=myemail@example.ru
AuthPass=пароль_к_почтовому_ящику
rewriteDomain=example.ru
hostname=example.ru
FromLineOverride=YES
UseTLS=YES
Все осталось добавить пользователя в разрешенных пользователей которые имеют право отправлять почту. Делается это в файле /etc/ssmtp/revaliases
В моем случае был пустой файл и я дописал одну строку:
root:myemail@example.ru:smtp.yandex.ru:465
Все с ssmtp разобрались осталось добавить опцию в phpbb3:
1. В центре администрирования в главной вкладке "Общие" ищем пункт Средства связи->Настройка почты.
2. Включаем опцию "Включить email сообщения" и "Рассылку email сообщений через форум".
3. В поля "Контактный email" и "Обратный email" пишем имейл через который осуществляем рассылку/отправку в моем случае myemail@example.ru
4. Настройка завершена. Опции которые расположены ниже задействовать не нужно, так как рассылка будет также происходить через функцию mail().
При просмотре оригинала письма, т.е. с полным просмотром заголовков увидел, что в качестве отправителя указан www-data@moivps, то есть фактически отправитель не совпадал с полем отправитель в письме.
При написании собственных скриптов эта проблема обходилась без проблем, но так как мои познания в структуре кода phpbb3 минимальный полез в гугл решать вопрос более простым путем.
После недолгого поиска нашел решение данной проблемы, но вариант этот подходит только для небольшого числа хостов и пользователей.
Решение состоит в установке и замене стандартного MTA exim на ssmtp. Преимущество в том, что не нужно нагружать сервер лишними программами и по своему принципу ssmtp подгружается только в случае его вызова. Т.е. он будет загружаться только при использовании функции mail. И после отправки выгружаться из памяти. Кстати то что используется функция mail() очень важно, почему будет ясно ниже. Для переправки почты будет использоваться Яндекс службы для домена, хотя службы Google настраиваются аналогично.
Допустим привяжем к службам Яндекса домен example.ru
Итак приступим к установке:
apt-get install ssmtp
При установке автоматом будет удален пакет exim. После этого отправка почты отвалится до того как вы настроите конфигурационные файлы. Они расположены как обычно: /etc/ssmtp/
Правим ssmtp.conf для нашего домена example.ru
root=myemail@example.ru
mailhub=smtp.yandex.ru:465
AuthUser=myemail@example.ru
AuthPass=пароль_к_почтовому_ящику
rewriteDomain=example.ru
hostname=example.ru
FromLineOverride=YES
UseTLS=YES
Все осталось добавить пользователя в разрешенных пользователей которые имеют право отправлять почту. Делается это в файле /etc/ssmtp/revaliases
В моем случае был пустой файл и я дописал одну строку:
root:myemail@example.ru:smtp.yandex.ru:465
Все с ssmtp разобрались осталось добавить опцию в phpbb3:
1. В центре администрирования в главной вкладке "Общие" ищем пункт Средства связи->Настройка почты.
2. Включаем опцию "Включить email сообщения" и "Рассылку email сообщений через форум".
3. В поля "Контактный email" и "Обратный email" пишем имейл через который осуществляем рассылку/отправку в моем случае myemail@example.ru
4. Настройка завершена. Опции которые расположены ниже задействовать не нужно, так как рассылка будет также происходить через функцию mail().
Комментарии
Отправить комментарий