一个老系统用的PHPMail.class.php 发送邮件,最近迁移了服务器,发现邮件发送功能过一两天就会出问题,邮件发不出去,然后打开调试模板发现报错。
刚开始以为是防火墙,后来查了防火墙,没有问题,然后以为是fsockopen函数被禁用了。
写了一段代码测试:$fp = fsockopen("smtp.exmail.qq.com", 465, $errno, $errstr, 30);
if(!$fp){
print_r($errno);
print_r($errstr);
}else{
echo "yes";
}
运行后发现报错:
$errno: 0
$errstr :php_network_getaddresses: getaddrinfo failed: System error
提示这个错误后也一直没找到原因,最后修改了php-fpm.conf
pm.max_requests = 5000;
pm.process_idle_timeout = 10s;
问题解决了。