个人认为这个时间是php.ini里面的60s超时,而mail函数没有得到返回值(true or false ),所以等60s没有得到返回值后,直接结束这行命令的。
CODE:
[root@xx mail]# php ~/mail.php 0.30792800 1212129029 OK.0.12686400 1212129090 [root@xx mail]# service sendmail stop Shutting down sm-client: [ OK ] Shutting down sendmail: [ OK ] You have mail in /var/spool/mail/root [root@xx mail]# php ~/mail.php 0.18359200 1212129247 OK.0.01417100 1212129308
个人认为这个时间是php.ini里面的60s超时,而mail函数没有得到返回值(true or false ),所以等60s没有得到返回值后,直接结束这行命令的。
CODE:
[root@xx mail]# php ~/mail.php 0.30792800 1212129029 OK.0.12686400 1212129090 [root@xx mail]# service sendmail stop Shutting down sm-client: [ OK ] Shutting down sendmail: [ OK ] You have mail in /var/spool/mail/root [root@xx mail]# php ~/mail.php 0.18359200 1212129247 OK.0.01417100 1212129308
*
*
现象:
1。php里面使用mail函数很慢,约60s才能执行完毕。
2。收件人可以收到邮件
3。Linux直接使用mail命令些邮件,很快就可以执行完毕。
环境:rhel5/apache2/php5/mysql/sendmail
个人认为这个时间是php.ini里面的60s超时,而mail函数没有得到返回值(true or false ),所以等60s没有得到返回值后,直接结束这行命令的。
0.30792800 1212129029
OK.0.12686400 1212129090
[root@xx mail]# service sendmail stop
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
You have mail in /var/spool/mail/root
[root@xx mail]# php ~/mail.php
0.18359200 1212129247
OK.0.01417100 1212129308
如下:
0.30792800 1212129029
OK.0.12686400 1212129090
mail.php:
echo microtime()."\n";
if(!mail("xxxx@xxxx.xxx.xx","sda","dfa","dsfas"))
{
echo "Fail";
echo microtime()."\n";
}
else
{
echo "OK.";
echo microtime()."\n";
}
?>
大家遇到过么?有没有好的解决方案呢?谢谢。