Как отловить сообщение об ошибке от imap_open? - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь установить соединение с помощью imap_open и пытаюсь вернуть сообщение об ошибке конечному пользователю. Тем не менее, выполнение останавливалось каждый раз, когда он сталкивался с ошибкой.

try {
    $mbox=imap_open( "{" . $data['imap_host'] . ":" . $data['imap_port'] . "/novalidate-cert}INBOX", $data['email'], $data['imap_password'] );
    imap_close($mbox);
    return [
        'success' => true
    ];

}catch (Exception $e) {
    return [
        'success' => false,
        'message' => $e->getMessage() //imap_last_error()
    ];
}

С приведенным выше кодом, он останавливается с ошибкой

"message": "imap_open(): Couldn't open stream {mail.example.com:143/novalidate-cert}INBOX",
    "exception": "ErrorException",

Я пытался добавить @imap_open, это подавленоошибка, поэтому он не вернул ни одного сообщения об ошибке на $e->getMessage(). Я пытался заменить $e->getMessage() на imap_last_error(), но ничего не происходит.

Что мне не хватает? Как я могу перехватить ошибку, если она возникла в процессе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...