from_name = 'Arenda.com.ua'; $this->from_email = 'andrey.belyy@gmail.com'; $this->mailer = new \unisender('5xaiqb1pnuu8jsun4rwxhow4shj11e55zdhjf5do','4940006'); } public function getDelivService() { $delivery_db = $this->getDi()->get('models')->getDelivery(); $delivery_email_db = $this->getDi()->get('models')->getDeliveryEmail(); if($this->deliveryService instanceof \deliveryServ) { return $this->deliveryService; } else { return $this->deliveryService = new \deliveryServ($delivery_db,$delivery_email_db); } } function setFromName($name) { return $this->from_name = $name; } function setFromEmail($email) { return $this->from_email = $email; } function setToMail($email = array(), $string = false) { if($string) { $sendTo = array(); foreach($email as $user){ $sendTo[] = $user['email']; } $email =implode(",", $sendTo); return $this->to_email = $email; } else { return $this->to_email = $email; } } function setTitle($title) { return $this->title = $title; } function setMailMessage($mailMessage) { return $this->mailMessage = $mailMessage; } function setToName($to_name) { return $this->to_name = $to_name; } function getUsers($id='') { $model = new \customersEmailList(); if(!empty($id)){ $id = implode(",", $id); $model = array($model->findFirst("id = '$id'")->toArray()); } else { $model = $model->find()->toArray(); } return $model; } public function SendForSelect($template, $users) { foreach($users as $user){ $this->setToMail($user['email']); $this->setMailMessage($template->text); $this->setTitle($template->title); $this->SendEmail(); } } public function SendEmail() { $this->mailer->SendMail($this->to_email, '', $this->from_email, $this->from_name, $this->title, $this->mailMessage); } //send for selected users from list public function SendDelivery($model,$template, $data, $users =array() ) { if(!$users) { $users = $this->getUsers($data['users_id']); } $this->setToMail($users, true); $this->setMailMessage($template['text']); $this->setTitle($template['title']); $campaign_id = $this->mailer->createCampaignDelivery($this->to_email, $this->from_email, $this->from_name, $this->title, $this->mailMessage); $delivery = array( 'campaign_id' => $campaign_id, 'campaign' => $data['utm_campaign'], 'name' => $data['name'], 'event_id' => $data['id'], 'status' => '0', 'project_id' => $data['project_id'] ); $model->save($delivery); } public function getDeliveryStatus( $campaign_id) { return $this->mailer->getCampaignStatus($campaign_id); } public function getCampaignDeliveryStats($campaign_id) { $status = $this->mailer->getCampaignDeliveryStats($campaign_id); return $status; } public function getCampaignAggregateStats( $campaign_id) { $result = $this->mailer->getCampaignAggregateStats($campaign_id); $model = array(); $model['total'] = $result->result->total; $model['ok_unsubscribed'] = isset($result->result->data->ok_unsubscribed) ? $result->result->data->ok_unsubscribed : null; $model['ok_delivered'] = isset($result->result->data->ok_delivered) ? $result->result->data->ok_delivered : null; $model['ok_read'] = isset($result->result->data->ok_read) ? $result->result->data->ok_read : null; $model['ok_fbl'] = isset($result->result->data->ok_fbl) ? $result->result->data->ok_fbl : null; $model['ok_link_visited'] = isset($result->result->data->ok_link_visited) ? $result->result->data->ok_link_visited : null; $model['delivered'] = $model['ok_delivered']+$model['ok_read']+$model['ok_unsubscribed']+$model['ok_fbl']+$model['ok_link_visited']; return $model; } public function getVisitedLinks($campaign_id) { $status = $this->mailer->getVisitedLinks($campaign_id); } public function updateDeliveryData($campaign_id) { return $this->getDelivService()->save($campaign_id); } //Send for all users in list public function SendDeliveryForAll($model, $template, $data){ p(); $this->setMailMessage($template['text']); $this->setTitle($template['title']); $campaign_id = $this->mailer->createCampaignDelivery(null, $this->from_email, $this->from_name, $this->title, $this->mailMessage); $save = array( 'campaign_id' => $campaign_id, 'status' => '0', 'name' => $data['name'], 'campaign' => $data['utm_campaign'], 'event_id' => $data['id'], 'project_id' => $data['project_id'] ); $model->save($save); } } }