Jak pisałem we wcześnuiejszych tematach, walczę z logowaniem się na pocztę IMAP przy użyciu ddeboer/imap. Mam do sprawdzania regularnie kilka skrzynek e-mail. Ich dane dostępowe mam w bazie danych. Mam taki skrypt:
$q = "SELECT * FROM `skrzynki`"; $res = $mysqli -> query($q); while($row = mysqli_fetch_assoc($res)) { $server = new Server($row['server']); $connection = $server->authenticate($row['email'], $row['pass"]); .... dalsza część kodu }
Wszystko było ok gdy wszystkie dane dostępowe do skrzynek się zgadzały. Jeśli np. hasło do drugiej było niewłaściwe to przerywało cały skrypt z komunikatem:
Kod
PHP Fatal error: Uncaught Ddeboer\Imap\Exception\AuthenticationFailedException: [E_WARNING] Authentication failed for user "login@onet.pl": imap_open(): Couldn't open stream {imap.poczta.onet.pl:993/imap/ssl/validate-cert}
imap_alerts (0):
imap_errors (1):
- Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Authentication failed. in /var/www/ddeboer/imap/src/Server.php:87
Stack trace:
#0 /var/www/imapd/index.php(82): Ddeboer\Imap\Server->authenticate()
#1 {main}
thrown in /var/www/imapd/vendor/ddeboer/imap/src/Server.php on line 87
imap_alerts (0):
imap_errors (1):
- Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Authentication failed. in /var/www/ddeboer/imap/src/Server.php:87
Stack trace:
#0 /var/www/imapd/index.php(82): Ddeboer\Imap\Server->authenticate()
#1 {main}
thrown in /var/www/imapd/vendor/ddeboer/imap/src/Server.php on line 87
Czasami si ę tak zdarza, że ktoś używa na zmiane dwóch haseł dlatego dodałem do bazy danych pole 'pass2' i zmieniłem kod żeby uwzględniał też to drugie hasło:
$q = "SELECT * FROM `skrzynki`"; $res = $mysqli -> query($q); while($row = mysqli_fetch_assoc($res)) { $server = new Server($row['server']); try { $connection = $server->authenticate($row['email'], $row['clean']); } catch (AuthenticationFailedException $e) { $connection = $server->authenticate($row['email'], $row['pass2']); } .... dalsza część kodu }
Ale nie próbuje tego drugiego hasła. Nie wyświetla się nawet komunikat "Mamy złe hasło, próbujemy zalogować się starym ". Dlaczego?