コード例 #1
0
ファイル: Single.php プロジェクト: knatorski/SMS
 /**
  * @param Logic_WebService_Mail_Recipient $recipient
  * @param string $subject
  * @param Logic_WebService_Mail_Content $content
  * @param string $charCode
  * @param boolean $isHtml
  * @throws Logic_WebService_Mail_Exception
  * @return Logic_WebService_Mail_Response
  */
 public function handle($recipient, array $recipientCC, array $recipientBCC, $subject, $content, Logic_WebService_Mail_Attachment $attachments, $charCode = 'UTF-8', $isHtml = false, $replyto = null)
 {
     $recipient = new Logic_WebService_Mail_Recipient($recipient);
     $recipientCCChecker = new Logic_WebService_Mail_RecipientCC();
     $recipientCCChecker->checkAddresses($recipientCC);
     $recipientCCChecker->checkAddresses($recipientBCC);
     $mailBlacklistModel = new MailBlacklistStorage();
     if ($recipient->checkEmailOnBlackList($this->_client->getParams()->id)) {
         $mailBlacklistModel->addMail($this->_client->getParams()->id, $this->_service->getParams()->id, $recipient, $subject, $content, 0, $recipientCC, $recipientBCC);
         throw new Logic_WebService_Mail_Exception('Proba wyslania e-maila testowego na adres e-mail obecny na blacklist: ' . $this->_mail, 417);
     }
     foreach ($recipientCC as $recCC) {
         if ($recCC && $recipient->checkEmailOnBlackList($this->_client->getParams()->id, $recCC)) {
             $mailBlacklistModel->addMail($this->_client->getParams()->id, $this->_service->getParams()->id, $recipient, $subject, $content, 0, $recipientCC, $recipientBCC);
             throw new Logic_WebService_Mail_Exception('Proba wyslania e-maila testowego na adres e-mail (CC) obecny na blacklist: ' . $this->_mail, 417);
         }
     }
     foreach ($recipientBCC as $recBCC) {
         if ($recBCC && $recipient->checkEmailOnBlackList($this->_client->getParams()->id, $recBCC)) {
             $mailBlacklistModel->addMail($this->_client->getParams()->id, $this->_service->getParams()->id, $recipient, $subject, $content, 0, $recipientCC, $recipientBCC);
             throw new Logic_WebService_Mail_Exception('Proba wyslania e-maila testowego na adres e-mail (BCC) obecny na blacklist: ' . $this->_mail, 417);
         }
     }
     if (!$this->_environment->checkStatus()) {
         $recipient->checkEmailOnWhiteList();
         $recipientCCChecker->checkEmailOnWhiteList($recipientCC);
         $recipientCCChecker->checkEmailOnWhiteList($recipientBCC);
     }
     $modelCounter = new MailCounter();
     $limit = new Logic_WebService_Element_Limit($this->_client, $this->_service);
     $limit->check($modelCounter, $recipient->getRecipient()->id);
     $limit->checkByContent($modelCounter, $recipient->getRecipient()->id, $content);
     if (!$subject) {
         throw new Logic_WebService_Mail_Exception('Nie podano tytulu wiadomosci e-mail', 425);
     }
     $params = $this->_service->getParams();
     if ($content->countContentLenght() <= 0) {
         throw new Logic_WebService_Sms_Exception('Proba wyslania pustego maila (brak tresci przygotowanej do wysylki)', 510);
     }
     $mail = new Logic_WebService_Mail_Transport_ZendMail();
     $result = $mail->handle($params->from_title, $params->from_mail, $recipient->getMail(), $recipientCC, $recipientBCC, $subject, $content->getContent(), $attachments, $params->smtp_host, $params->smtp_port, $params->smtp_login, $params->smtp_password, $charCode, $isHtml, $replyto);
     $response = new Logic_WebService_Mail_Response();
     if ($result) {
         $response->setStatus(true)->setMessage('Wysłano e-mail');
     } else {
         $response->setStatus(false)->setMessage('Blad aplikacji');
     }
     $model = new MailStorage();
     $response->setMailId($model->addMail($this->_client->getParams()->id, $this->_service->getParams()->id, $recipient, $subject, $content, $response));
     return $response;
 }
コード例 #2
0
ファイル: Mail.php プロジェクト: knatorski/SMS
 private function sendMail($email, $subject, $content, $cc = array(), $bcc = array())
 {
     $recipient = new Logic_WebService_Mail_Recipient($email);
     $content = new Logic_WebService_Mail_Content($content);
     if (!$subject) {
         throw new Logic_WebService_Mail_Exception('Nie podano tytulu wiadomosci e-mail', 425);
     }
     $params = $this->_service->getParams();
     if ($content->countContentLenght() <= 0) {
         throw new Logic_WebService_Sms_Exception('Proba wyslania pustego maila (brak tresci przygotowanej do wysylki)', 510);
     }
     $mail = new Logic_WebService_Mail_Transport_ZendMail();
     if ($this->_sendMail) {
         $this->_sendMail = false;
         $result = $mail->handle($params->from_title, $params->from_mail, $recipient->getMail(), $cc, $bcc, $subject, $content->getContent(), $attachments, $params->smtp_host, $params->smtp_port, $params->smtp_login, $params->smtp_password, $charCode, $isHtml);
         $response = new Logic_WebService_Mail_Response();
         if ($result) {
             $response->setStatus(true)->setMessage('Wysłano e-mail');
         } else {
             $response->setStatus(false)->setMessage('Blad aplikacji');
         }
     }
     return $response;
 }