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