【发布时间】:2012-01-03 05:23:36
【问题描述】:
当我通过浏览器执行我的电子邮件脚本时,会返回一个超时致命错误(除非我大幅增加执行时间,否则它会运行正常,而不是我正在寻找的解决方案)。 电子邮件已发送,但需要很长时间(平均 5 分钟)才能到达(我的收件箱)!
(考虑到通过命令行它可以完美运行,我认为 php.ini 的 SMTP 肯定配置得很好。)
这是浏览器请求执行的代码:
<?php
mail('amatos@example.com', 'test subject', 'test body', 'From: Andre Matos <amatos@example.com>');
?>
当我通过命令行运行同样的代码时(真的一样吗?我开始怀疑自己了):
php -r "mail('amatos@example.com', 'test subject', 'test body', 'From: Andre Matos <amatos@example.com>');"
完美运行!脚本运行,它停止并且电子邮件立即到达(2/3 秒)。
那么,什么会导致这种差异以及如何解决呢?有什么想法吗?
提前致谢。
[编辑] 一些额外信息:
- 机器是windows
- 服务器是本地主机
- php.ini 对于浏览器和 cli 实例都是一样的
[编辑2]
感谢大家尝试猜测问题所在。我提出了一个问题,即有人以前遇到过问题并且知道一些具体的事情。鉴于没有出现任何具体的建议并且没有任何建议真正奏效,我决定接受那个让我对这个问题得出更多结论的建议...... +1 对于你所有有用的知识/想法(/猜测):-)
【问题讨论】:
-
命令行和浏览器实际上使用的是两个不同的php.ini文件。您可能需要搜索 php.ini 并比较您的设置
-
这对我来说毫无意义;于是查了一下:
php --ini返回的配置文件路径和浏览器一样。 -
我假设 sendmail_path 也是一样的?
-
你试过it.php.net/manual/en/function.mail.php上的“dave dot kelly at dawkco dot com”的例子吗?对 PHP_EOL 的引用可以成为您的解决方案。
-
djdy,是的,sendmail_path 是一样的。 Ivan Buttinoni,它不起作用,具有相同的行为。
标签: php email browser command-line-interface