Exemple #1
0
 private function _findUnknownRecipients($params)
 {
     $unknown = array();
     if (GO::modules()->addressbook && !GO::config()->get_setting('email_skip_unknown_recipients', GO::user()->id)) {
         $recipients = new \GO\Base\Mail\EmailRecipients($params['to']);
         $recipients->addString($params['cc']);
         $recipients->addString($params['bcc']);
         foreach ($recipients->getAddresses() as $email => $personal) {
             $contacts = \GO\Addressbook\Model\Contact::model()->findByEmail($email, GO\Base\Db\FindParams::newInstance()->ignoreAcl());
             foreach ($contacts as $contact) {
                 if ($contact->checkPermissionLevel(Acl::READ_PERMISSION) || $contact->goUser && $contact->goUser->checkPermissionLevel(Acl::READ_PERMISSION)) {
                     continue 2;
                 }
             }
             $company = \GO\Addressbook\Model\Company::model()->findSingleByAttribute('email', $email);
             if ($company) {
                 continue;
             }
             $recipient = \GO\Base\Util\String::split_name($personal);
             if ($recipient['first_name'] == '' && $recipient['last_name'] == '') {
                 $recipient['first_name'] = $email;
             }
             $recipient['email'] = $email;
             $recipient['name'] = (string) \GO\Base\Mail\EmailRecipients::createSingle($email, $personal);
             $unknown[] = $recipient;
         }
     }
     return $unknown;
 }