コード例 #1
0
         // Mail host pop|imap server ; default 'localhost'
         $cwsMailBounceHandler->username = $bounce_user;
         // Mailbox username
         $cwsMailBounceHandler->password = $bounce_pass;
         // Mailbox password
         $cwsMailBounceHandler->port = $bounce_port;
         // the port to access your mailbox ; default 143, other common choices are 110 (pop3), 995 (gmail)
         $cwsMailBounceHandler->service = $bounce_service;
         // the service to use (imap or pop3) ; default 'imap'
         $cwsMailBounceHandler->service_option = $bounce_option;
         // the service options (none, tls, notls, ssl) ; default 'notls'
         break;
 }
 $cwsMailBounceHandler->cert = CWSMBH_CERT_NOVALIDATE;
 // certificates validation (CWSMBH_CERT_VALIDATE or CWSMBH_CERT_NOVALIDATE) if service_option is 'tls' or 'ssl' ;
 if ($cwsMailBounceHandler->openImapRemote()) {
     $result = $cwsMailBounceHandler->processMails();
 }
 echo 'Nombre de mails : ' . $result['counter']['total'] . '<br>
       Nombre de traitements : ' . $result['counter']['fetched'] . '<br>
       Emails traités en erreur : ' . $result['counter']['processed'] . '<br>
       Emails traités corrects : ' . $result['counter']['unprocessed'] . '<br>
       Emails supprimés : ' . $result['counter']['deleted'] . '<br>
       Emails déplacés : ' . $result['counter']['moved'];
 if (count($result) > 0) {
     foreach ($result['msgs'] as $item) {
         $expl = $cwsMailBounceHandler->findStatusExplanationsByCode($item['recipients'][0]['status']);
         if ($item['processed'] && $item['recipients'][0]['action'] == 'failed' && $type_env == 'prod') {
             UpdateEmailError($cnx, $row_config_globale['table_email'], $list_id, $item['recipients'][0]['email'], $item['recipients'][0]['status'], $item['recipients'][0]['bounce_type'], $item['recipients'][0]['bounce_cat'], $expl['third_subcode']['title'], $expl['third_subcode']['desc']);
             UpdateEmailSendError($cnx, $row_config_globale['table_send'], $list_id);
         }
コード例 #2
0
 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);
     }
 }