/** * @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(); }