Suppress bogus PHP imap_open() Notice: insecure server advertised AUTH=PLAIN

前端 未结 3 1501
攒了一身酷
攒了一身酷 2021-01-04 13:59

I\'m getting a mess of these bogus warnings in my log file, and I’d like to suppress them without suppressing legitimate messages:

PHP Notice: Unknown: SECU

相关标签:
3条回答
  • 2021-01-04 14:09

    As deceze said, it's not really a "bogus" message, it just means that it's a plaintext unencrypted connection. Here is how you can do :

    $error = imap_errors();
    if (count($error) > 1 || $error[0] != 'SECURITY PROBLEM: insecure server advertised AUTH=PLAIN') {
      // More than 1 error or not the expected error
      var_dump($error);
      throw new Exception('IMAP error detected');
    }
    
    0 讨论(0)
  • 2021-01-04 14:15

    One thing you can do is use the imap_errors and imap_alerts functions, place this code before your imap_close.

    imap_errors();
    imap_alerts();
    

    What these functions do is return all errors and alerts that have occured and then flushes them. If you do not call these functions they are issued as notices when imap_close() is called, or the page dies.

    0 讨论(0)
  • 2021-01-04 14:22

    You can get all warnings and errors while suppressing notices using this:

    error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE);
    

    The bit-level error reporting flags are:

    Error Bit           Purpose
    ###############################################################################
    E_ALL               All errors and warnings (doesn't include E_STRICT)
    ###############################################################################
    E_ERROR             Fatal run-time errors
    ###############################################################################
    E_WARNING           Run-time warnings (non-fatal errors)
    ###############################################################################
    E_PARSE             Compile-time parse errors
    ###############################################################################
    E_NOTICE            Run-time notices (these are warnings which often result 
                        from a bug in your code, but it's possible that it was 
                        intentional (e.g., using an uninitialized variable and 
                        relying on the fact it's automatically initialized to 
                        an empty string)
    ###############################################################################
    E_STRICT            Run-time notices, enable to have PHP suggest changes to 
                        your code which will ensure the best interoperability 
                        and forward compatibility of your code.
    ###############################################################################
    E_CORE_ERROR        Fatal errors that occur during PHP's initial startup
    ###############################################################################
    E_CORE_WARNING      Warnings (non-fatal errors) that occur during PHP's 
                        initial startup
    ###############################################################################
    E_COMPILE_ERROR     Fatal compile-time errors
    ###############################################################################
    E_COMPILE_WARNING   Compile-time warnings (non-fatal errors)
    ###############################################################################
    E_USER_ERROR        User-generated error message
    ###############################################################################
    E_USER_WARNING      User-generated warning message
    ###############################################################################
    E_USER_NOTICE       User-generated notice message
    ###############################################################################
    

    You can also set ignore_repeated_errors to TRUE/1 so that it doesn't flood your log as well.

    ini_set('ignore_repeated_errors',1);
    
    0 讨论(0)
提交回复
热议问题