Оказывается, в 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?