我们使用以下代码通过SSL连接到IMAP:
imap_timeout(IMAP_OPENTIMEOUT, 5);
imap_timeout(IMAP_READTIMEOUT, 5);
imap_timeout(IMAP_WRITETIMEOUT, 5);
imap_timeout(IMAP_CLOSETIMEOUT, 5);
$connection = null;
try {
$connection = imap_open('{'.$host.':'.$port.'/service='.$service.$crypt.'/novalidate-cert}', $user, $pass, OP_SILENT, 1, array('DISABLE_AUTHENTICATOR' => 'PLAIN'));
} catch (Exception $e) {
// Errors logged in a summary below
}
这通常可以正常工作。但是,有时它会挂在imap_open上超过800秒钟。它返回的错误是:
TLS\/SSL failure for imap.xxx.net: SSL negotiation failed
如何确保imap_open不会等待那么长时间?