Beispiel #1
0
 /**
  * @param Psn_Model_Rule $rule
  * @param $post
  */
 public function execute(Psn_Model_Rule $rule, $post)
 {
     if ((int) $rule->get('service_email') !== 1) {
         return;
     }
     $this->_reset();
     $this->_rule = $rule;
     $this->_post = $post;
     // create email object
     $this->_email = new IfwPsn_Wp_Email(self::EMAIL_IDENTIFIER);
     // prepare recipients
     $this->_prepareRecipients($rule, $post);
     if (!empty($this->_to)) {
         // send email
         $this->_email->setTo($this->getFormattedEmails($this->_to))->setSubject($this->_getPreparedSubject($rule))->setMessage($this->_getPreparedBody($rule));
         if ($this->hasCc()) {
             $this->_email->setCc($this->getFormattedEmails($this->_cc));
         }
         if ($this->hasBcc()) {
             $this->_email->setBcc($this->getFormattedEmails($this->_bcc));
         }
         if ((int) $this->_rule->get('service_log') === 1) {
             $this->_email->setOption('service_log', true);
         } else {
             $this->_email->setOption('service_log', false);
         }
         IfwPsn_Wp_Proxy_Action::doAction('psn_before_notification_email_send', $this);
         $this->_email->send();
         IfwPsn_Wp_Proxy_Action::doAction('psn_after_notification_email_send', $this);
     }
 }
 /**
  *
  */
 public function sendTestMailAction()
 {
     if (!$this->_verifyNonce('psn-form-test-mail')) {
         $this->getAdminNotices()->persistError(__('Invalid access.', 'psn'));
         $this->_gotoIndex();
     }
     $this->_email = new IfwPsn_Wp_Email();
     $subject = sprintf(__('Test Email from %s', 'psn'), $this->_pm->getEnv()->getName());
     $body = IfwPsn_Wp_Proxy_Filter::apply('psn_send_test_mail_body', sprintf(__('This is a test email generated by %s on %s (%s)', 'psn'), $this->_pm->getEnv()->getName(), IfwPsn_Wp_Proxy_Blog::getName(), IfwPsn_Wp_Proxy_Blog::getUrl()), $this->_email);
     switch (trim($this->_request->get('recipient'))) {
         case 'custom':
             $recipient = esc_attr($_POST['custom_recipient']);
             break;
         case 'admin':
         default:
             $recipient = IfwPsn_Wp_Proxy_Blog::getAdminEmail();
             break;
     }
     $recipient = IfwPsn_Wp_Proxy_Filter::apply('psn_send_test_mail_recipient', $recipient);
     if (empty($recipient)) {
         $resultMsg = __('Invalid recipient.', 'psn') . ' ' . __('Test email could not be sent.', 'psn');
         $this->getAdminNotices()->persistError($resultMsg);
     } else {
         $this->_email->setTo($recipient)->setSubject($subject)->setMessage($body);
         IfwPsn_Wp_Proxy_Action::doAction('psn_send_test_mail', $this->_email);
         if ($this->_email->send()) {
             // mail sent successfully
             $resultMsg = __('Test email has been sent successfully.', 'psn');
             $this->getAdminNotices()->persistUpdated($resultMsg);
             IfwPsn_Wp_Proxy_Action::doAction('psn_send_test_mail_success', $this);
         } else {
             // email could not be sent
             $resultMsg = __('Test email could not be sent.', 'psn');
             $this->getAdminNotices()->persistError($resultMsg);
             IfwPsn_Wp_Proxy_Action::doAction('psn_send_test_mail_failure', $this);
         }
         IfwPsn_Wp_Proxy_Action::doAction('psn_after_test_email_send', $this->_email);
     }
     $this->_gotoIndex();
 }