У меня есть задание cron, которое извлекает электронные письма из учетной записи gmail каждые 5 минут. Я использую библиотеку ddboer / imap для аутентификации, и время от времени (примерно раз в 2-3 дня) возникает проблема с подключением.
Мой код довольно прост и выглядит примерно так:
$server = new Server('imap.gmail.com');
try {
$connection = $server->authenticate($username, $password);
} catch (Exception $e) {
echo $e->getMessage();
}
Выход при сбое:
[E_WARNING] Authentication failed for user "user@example.com": imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl/validate-cert}
imap_alerts (0):
imap_errors (1):
- Can not authenticate to IMAP server: [CLOSED] IMAP connection broken (authenticate)
Устранение неполадок было очень трудным, поскольку проблема носит прерывистый характер. Следующие общие проблемы уже решены:
Здесь важно отметить, что сценарий успешно выполняется в 99% случаев и дает сбой только изредка, но это происходит достаточно регулярно, чтобы вызвать этот вопрос.