我在虚拟主机名中使用带有正则表达式的 nginx 来捕获子域名,以便稍后使用:
server_name ~^(?<subdir>(\\w|\\-)*)(\\.)?(domain\\.org)$;
我发现 PHP(从 nginx 作为 FPM 运行)中的 mail() 函数不发送电子邮件。
我查看了 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 [email protected]"
不过,禁用进出口检查可能不是一个好主意。
谢谢
答案1
解决方案是在 nginx 配置中明确设置 SERVER_NAME:
fastcgi_param SERVER_NAME domain.org;