if (empty($row_config_globale['language'])) {
    $row_config_globale['language'] = "english";
} else {
    include "lang/" . $row_config_globale['language'] . ".php";
}
$form_pass = empty($_POST['form_pass']) ? "" : $_POST['form_pass'];
if (!checkAdminAccess($row_config_globale['admin_pass'], $form_pass)) {
    header("Location:index.php");
    exit;
}
$list_id = !empty($_POST['list_id']) ? intval($_POST['list_id']) : '';
$list_id = !empty($_GET['list_id']) && empty($list_id) ? intval($_GET['list_id']) : intval($list_id);
if (file_exists("config_bounce.php")) {
    include 'config_bounce.php';
    include 'lib/class.cws.mbh.php';
    $cwsMailBounceHandler = new CwsMailBounceHandler();
    $cwsMailBounceHandler->test_mode = $type_env == 'prod' ? false : true;
    // false : mode prod, true : mode dev et debug
    $cwsMailBounceHandler->debug_verbose = $type_env == 'prod' ? CWSMBH_VERBOSE_QUIET : CWSMBH_VERBOSE_DEBUG;
    // default CWSMBH_VERBOSE_QUIET (silenceux) mode VERBOSE : CWSMBH_VERBOSE_DEBUG
    $cwsMailBounceHandler->open_mode = CWSMBH_OPEN_MODE_IMAP;
    // ouverture générique du bounce
    switch ($row_config_globale['sending_method']) {
        case 'smtp_gmail':
            $cwsMailBounceHandler->disable_delete = true;
            //pour supprimer un mail chez Google il faut faire un move dans Trash...
            $cwsMailBounceHandler->move_hard = true;
            $cwsMailBounceHandler->folder_hard = 'INBOX.Trash';
            $cwsMailBounceHandler->host = 'imap.gmail.com';
            // Mail host pop|imap server ; default 'localhost'
            $cwsMailBounceHandler->username = $row_config_globale['smtp_login'];
 function init()
 {
     parent::init();
     ini_set('memory_limit', '2048M');
     set_time_limit(0);
     $cwsMailBounceHandler = new CwsMailBounceHandler();
     $cwsMailBounceHandler->test_mode = false;
     // default false
     // $cwsMailBounceHandler->debug_verbose = CWSMBH_VERBOSE_DEBUG; // default CWSMBH_VERBOSE_QUIET
     $cwsMailBounceHandler->purge = true;
     // default false
     //$cwsMailBounceHandler->disable_delete = false; // default false
     //$cwsMailBounceHandler->open_mode = CWSMBH_OPEN_MODE_IMAP; // default CWSMBH_OPEN_MODE_IMAP
     //$cwsMailBounceHandler->move_soft = false; // default false
     //$cwsMailBounceHandler->folder_soft = 'INBOX.soft'; // default 'INBOX.hard' - NOTE: for open_mode IMAP it must start with 'INBOX.'
     //$cwsMailBounceHandler->move_hard = false; // default false
     //$cwsMailBounceHandler->folder_hard = 'INBOX.hard'; // default 'INBOX.soft' - NOTE: for open_mode IMAP it must start with 'INBOX.'
     /**
      * .eml folder
      */
     //$cwsMailBounceHandler->open_mode = CWSMBH_OPEN_MODE_FILE;
     //if ($cwsMailBounceHandler->openFolder('emls/')) {
     //$cwsMailBounceHandler->processMails();
     //}
     /**
      * .eml file
      */
     //$cwsMailBounceHandler->open_mode = CWSMBH_OPEN_MODE_FILE;
     //if ($cwsMailBounceHandler->openFile('test/01.eml')) {
     // $cwsMailBounceHandler->processMails();
     //}
     /**
      * Local mailbox
      */
     //$cwsMailBounceHandler->open_mode = CWSMBH_OPEN_MODE_IMAP;
     //if ($cwsMailBounceHandler->openImapLocal('/home/email/temp/mailbox')) {
     // $cwsMailBounceHandler->processMails();
     //}
     /**
      * Remote mailbox
      */
     $mail_box_checked = [];
     $emails_setting = $this->add('xepan\\communication\\Model_Communication_EmailSetting');
     $emails_setting->addCondition('is_active', true);
     $invalid_email = [];
     foreach ($emails_setting as $setting) {
         if (in_array($setting['bounce_imap_email_host'], $mail_box_checked)) {
             continue;
         }
         $mail_box_checked[] = $setting['bounce_imap_email_host'];
         // echo "string".$setting['name'];
         $cwsMailBounceHandler->open_mode = CWSMBH_OPEN_MODE_IMAP;
         $cwsMailBounceHandler->host = $setting['bounce_imap_email_host'];
         // Mail host server ; default 'localhost'
         $cwsMailBounceHandler->username = $setting['return_path'];
         // Mailbox username
         $cwsMailBounceHandler->password = $setting['bounce_imap_email_password'];
         // Mailbox password
         $cwsMailBounceHandler->port = $setting['bounce_imap_email_port'];
         // the port to access your mailbox ; default 143, other common choices are 110 (pop3), 995 (gmail)
         //$cwsMailBounceHandler->service = 'imap'; // the service to use (imap or pop3) ; default 'imap'
         $cwsMailBounceHandler->service_option = 'ssl';
         // the service options (none, tls, notls, ssl) ; default 'notls'
         //$cwsMailBounceHandler->cert = CWSMBH_CERT_NOVALIDATE; // certificates validation (CWSMBH_CERT_VALIDATE or CWSMBH_CERT_NOVALIDATE) if service_option is 'tls' or 'ssl' ; default CWSMBH_CERT_NOVALIDATE
         //$cwsMailBounceHandler->boxname = 'TEST'; // the mailbox to access ; default 'INBOX'
         // $cwsMailBounceHandler->imap_opt = $this->api->current_website['bounce_imap_flags'];
         if ($cwsMailBounceHandler->openImapRemote()) {
             $cwsMailBounceHandler->processMails();
         }
         // echo "<pre>";
         // print_r($cwsMailBounceHandler->result);
         // echo "</pre>";
         $result = $cwsMailBounceHandler->result;
         if ($result['counter']['processed']) {
             foreach ($result['msgs'] as $msg) {
                 if ($msg['type'] == 'bounce') {
                     foreach ($msg['recipients'] as $receipent) {
                         if ($receipent['remove']) {
                             if (!in_array($receipent['email'], $invalid_email)) {
                                 $invalid_email[] = $receipent['email'];
                             }
                         }
                     }
                 }
             }
         }
     }
     if (count($invalid_email)) {
         $this->markInValid($invalid_email);
     }
 }