Esempio n. 1
0
 /**
  * Function updateContact
  *
  * Input names to create customer
  *
  * company_041 [company]
  * name_041 [name]
  * surname_041 [surname]
  * birth_date_041 [birthDate]
  * prefix_041 [prefix]
  * mobile_041 [mobile]
  * email_041 [email]
  * unsubscribe_mobile_041 [subscribeMobile]
  * unsubscribe_email_041 [subscribeEmail]
  *
  * @param   \Illuminate\Http\Request            $request
  * @return  \Syscover\Comunik\Models\Contact    $contact
  * @throws  \Exception
  */
 public static function updateContact(Request $request)
 {
     if (!$request->has('id')) {
         throw new \Exception('You have to indicate a id contact');
     }
     if (!$request->has('country')) {
         throw new \Exception('You have to define a country field to record a contact');
     }
     Contact::where('id_041', $request->input('id'))->update(['company_041' => $request->has('company') ? $request->input('company') : null, 'name_041' => $request->has('name') ? ucwords(strtolower($request->input('name'))) : null, 'surname_041' => $request->has('surname') ? ucwords(strtolower($request->input('surname'))) : null, 'birth_date_041' => $request->has('birthDate') ? \DateTime::createFromFormat(config('pulsar.datePattern'), $request->input('birthDate'))->getTimestamp() : null, 'birth_date_text_041' => $request->has('birthDate') ? $request->input('birthDate') : null, 'country_id_041' => $request->input('country'), 'prefix_041' => $request->has('prefix') ? $request->input('prefix') : null, 'mobile_041' => $request->has('mobile') ? $request->input('mobile') : null, 'email_041' => $request->has('email') ? strtolower($request->input('email')) : null, 'unsubscribe_mobile_041' => $request->has('subscribeMobile') && $request->input('subscribeMobile') != '1' ? true : false, 'unsubscribe_email_041' => $request->has('subscribeEmail') && $request->input('subscribeEmail') != '1' ? true : false]);
     $contact = Contact::builder()->find($request->input('id'));
     if ($contact === null) {
         throw new \Exception('You have to indicate an id of a existing contact');
     }
     return $contact;
 }
Esempio n. 2
0
 public function unsubscribeEmail()
 {
     $contact = Contact::find(Crypt::decrypt($this->request->input('key')));
     Contact::where('id_041', $contact->id_041)->update(['unsubscribe_email_041' => true]);
     return view('comunik::contact.unsubscribe', ['contact' => $contact, 'unsubscribe' => true]);
 }
Esempio n. 3
0
 /**
  * Recursive function
  *
  * @param \Syscover\Pulsar\Libraries\ImapServices   $imapService
  * @param \Syscover\Pulsar\Models\EmailAccount      $account
  * @param \Illuminate\Support\Collection            $patterns
  * @param integer                                   $position
  */
 public static function checkBouncedMessagesFromAccount($imapService, $account, $patterns, $position)
 {
     $nEmailsToChecck = 25;
     // Solicitamos los 10 anteriores mensajes a comprobar desde la última posición comnprobada
     $messages = $imapService->getServer()->getMessages($nEmailsToChecck, $position);
     $findLastCheckUid = false;
     foreach ($messages as $key => $message) {
         // comprobamos si el mensaje coincide con algún patron
         $response = ComunikLibrary::checkEmailPattern($message, $patterns);
         if ($response['success']) {
             if (count($response['contacts']) > 0) {
                 // Obtenemos el primer contacto del email que ha coincidido con el patrón
                 $contact = $response['contacts']->first();
             } else {
                 $contact = false;
             }
             // Acciones a realizar
             // 1 = nada
             // 2 = borrar contacto y mensaje
             // 3 = unsuscribe y borrar mensaje
             // 4 = borrar contacto
             // 5 = ususcribe contacto
             // 6 = borrar mensaje
             if ($contact != false && ($response['pattern']->action_049 == 2 || $response['pattern']->action_049 == 4)) {
                 // borrar contacto
                 Contact::where('id_041', $contact->id_041)->delete();
             }
             if ($contact != false && ($response['pattern']->action_049 == 3 || $response['pattern']->action_049 == 5)) {
                 // unsuscribe contacto
                 Contact::where('id_041', $contact->id_041)->update(['unsubscribe_email_041' => true]);
             }
             if ($response['pattern']->action_049 == 2 || $response['pattern']->action_049 == 3 || $response['pattern']->action_049 == 6) {
                 // borrar mensaje
                 $message->delete();
                 // retrasamos medio segundo la ejecución para no saturar el servidor IMAP de peticiones
                 usleep(500000);
             }
         }
         // si es la última interacción
         if ($key === count($messages) - 1) {
             // purge all delete messages
             $imapService->getServer()->expunge();
             // actualizamos el último UID comprobado
             EmailAccount::where('id_013', $account->id_013)->update(['last_check_uid_013' => $message->getUid()]);
         }
     }
 }