Question: 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: SECURITY PROBLEM: insecure server advertised AUTH=PLAIN (errflg=1) in Unknown on line 0**

(I’m connecting to an IMAP service that is only listening to localhost on a server with no third-party users.)

Answer: 
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');
}

```
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);

```