$mailer = new SMTP;
$mailer->Timeout = 5;
$mailer->connect($host, $port)
这应该在5秒后取消connect(),但是超时需要更长时间,并且在5秒后不会取消。
如何强制我的脚本在5秒后停止尝试连接到SMTP?
我期待着你的回答。
致以最诚挚的问候,
distractedGuy
答案 0 :(得分:2)
PHPMailer的SMTP类中有两个超时 - Timeout
和Timelimit
。
Timeout
适用。 Timelimit
是每个SMTP命令响应允许的持续时间。默认为5分钟(根据RFC) - 因此可能是您快速连接,但服务器响应命令的速度很慢。您应该尝试将Timelimit
设置为较低的值,如下所示:
$mail->getSMTPInstance()->Timelimit = 5;
所有这些都应该用于提醒您SMTP并非旨在成为交互式即时协议,因此您应该只将SMTP用于附近可以正确排队请求的服务器。