Функция PHP mail() через msmtp: не работает через браузер, но работает в консоле. Контейнер Docker php:7.3-fpm. Сайт Битрикс

Сборка Докер: nginx + php-fpm 7.3 (так же mysql, certbot, memcached) Работает сайт на Битриксе. Все нормально, кроме отправки почты.

В файле testmail.php (в корне сайте) есть простой код:

if(mail("[email protected]", "TEST SUBJECT", "TEST BODY"))
  echo "Почтовая система работает!";
else
  echo "Неудача, почтовая система не работает, попробуйте еще!";

Если в Докер контейнере php-fpm запустить этот код через команду php -f testmail.php (а так же через php -a ), то письмо приходит на мою почту, если открывать файл через браузер, то нет.

Подобные вопросы уже есть и в ответах к ним предлагается проверить, что запускается именно тот php и именно с теми настройками. PHP у меня точно один и создается он через Dockerfile, где написано

FROM php:7.3-fpm

а так же идет установка

RUN apt-get update -q -y && apt-get install -q -y --no-install-recommends  msmtp

И раз через консоль php письмо уходит, значит все установилось, как надо.

Далее я проверил настройки phpinfo(): Параметр Local Value и Master Value:

sendmail_path   /usr/bin/msmtp -t -i -C /var/.msmtprc -a yandex

Тоже самое будет, если в моем php файле дописать:

var_dump(ini_get('sendmail_path'));

результат:

string(47) "/usr/bin/msmtp -t -i -C /var/.msmtprc -a yandex"

Настройка ini файла такая:

sendmail_path = "/usr/bin/msmtp -t -i -C /var/.msmtprc -a yandex"

Эта настройка как раз и видна выше.

Далее начал проверять логи:

в /var/log/msmtp/msmtp.log неудачные попытки отправки через браузер не фиксируются, только удачные через консоль. Выглядят они вот так:

Jul 09 11:59:57 host=smtp.yandex.ru tls=on auth=on user=<...> from=<...> recipients=<...> 
mailsize=126 smtpstatus=250 smtpmsg='250 2.0.0 Ok: queued on vla1-cde8305024b9.qloud- 
c.yandex.net as 1625831997-JXMMT0lDbg-xvQuPk7w' exitcode=EX_OK

Остается, наверное, последнее, что нужно проверить - это Nginx. В конфиге настройки для php выглядят так:

location ~* \.php$ {
    try_files $uri =404;
    include        fastcgi_params;
    fastcgi_pass   php-fpm:9000;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_read_timeout 1800;
}

(Файл /var/log/nginx/php_errors.log отсутствует). Какие-то другие логи php не нашел, чтобы в них увидеть хоть что-нибуть связанные с mail.

Помогите, пжл, советом, что еще нужно проверить. Я в тупике, не понимаю, где искать.


Ответы (0 шт):