среда, 10 марта 2021 г.

Принцип работы email на mediawiki

 Оказывается, в mediawiki недостаточно просто настроить smtp на сервере, чтобы она могла отправлять письма. При таком варианте появляется ошибка Unknown error in PHP's mail() function, несмотря на то, в консоли функция mail() отправляет письмо успешно:

# php -r "mail('test_user@test_email.ru', 'hello', 'blablablah');"

Чтобы отправка email начала функционировать в медиавики, нужно в файл настроек добавить переменную $wgSMTP:

$wgSMTP = [

    'host'     => 'smtp.mail.com', // could also be an IP address. Where the SMTP server is located. If using SSL or TLS, add the prefix "ssl://" or "tls://".

    'IDHost'   => 'lopar-wiki.tk',      // Generally this will be the domain name of your website (aka mywiki.org)

    'port'     => 587,                // Port to use when connecting to the SMTP server

    'auth'     => true,               // Should we use SMTP authentication (true or false)

    'username' => 'lopario@lopar-wiki.tk',     // Username to use for SMTP authentication (if being used)

    'password' => '********'       // Password to use for SMTP authentication (if being used)

];

То есть отправка почты идёт мимо настроенного на сервере msmtp и функции mail(), а через свою имплементацию протокола SMTP в библиотеке классов PEAR, который в свою очередь использует класс Net_Socket::, использующий API для подключения через TCP/IP сокеты. 

Вопрос - зачем тогда вообще на сервере настраивать smtp, если это может делать сама php?

Комментариев нет:

Отправить комментарий