Я использую nginx с регулярным выражением внутри имени виртуального хоста, чтобы уловить имя поддомена и работать с ним позже:
server_name ~^(?<subdir>(\\w|\\-)*)(\\.)?(domain\\.org)$;
Я обнаружил, что функция mail () в PHP (работающая как FPM из nginx) не отправляет электронные письма.
Я просмотрел журналы exim и нашел следующее:
2019-03-27 20:51:56 rejected EHLO from [127.0.0.1]: syntactically invalid argument(s): ~^(?<subdir>(\\w|\\-)*)(\\.)?(domain\\.org)$
Конечно, это неверный EHLO. Похоже, PHP получает это от nginx. Но я не нашел способа, как это контролировать (кроме изменения имени виртуального хоста). Я использую этот параметр конфигурации в PHP:
sendmail_path="/usr/sbin/exim -t -i -f info@domain.org"
Отключение проверок в exim, вероятно, не лучшая идея.
Спасибо
Решение заключалось в том, чтобы явно установить SERVER_NAME в конфигурации nginx:
fastcgi_param SERVER_NAME domain.org;