Example #1
0
 /**
  * detemines if the mail can be sent, and sets a property to prevent sending if appropriate
  * @param Varien_Object $email
  * @param array|string $emailsTo
  * @return bool
  */
 public function canSend(Varien_Object $email, $emailsTo)
 {
     $this->setFilter(Mage::getStoreConfig('hackathon_mailguard/settings/type'));
     if ($email instanceof Mage_Core_Model_Email_Template) {
         $emailHeaders = $email->getMail()->getHeaders();
         if (isset($emailHeaders[self::MAIL_HEADER_BCC])) {
             $this->_addresses[self::MAIL_HEADER_BCC] = $emailHeaders[self::MAIL_HEADER_BCC];
             $validatedBcc = $this->checkAddresses(self::MAIL_HEADER_BCC);
         }
         if (isset($emailHeaders[self::MAIL_HEADER_CC])) {
             $this->_addresses[self::MAIL_HEADER_CC] = $emailHeaders[self::MAIL_HEADER_CC];
             $validatedCc = $this->checkAddresses(self::MAIL_HEADER_CC);
         }
     }
     if (!is_array($emailsTo)) {
         $emailsTo = array($emailsTo);
     }
     $this->_addresses['Recipients'] = $emailsTo;
     $validatedRecipients = $this->checkAddresses('Recipients');
     if (!empty($validatedRecipients)) {
         if ($email instanceof Mage_Core_Model_Email_Template) {
             if (isset($validatedBcc)) {
                 $this->changeMailHeaders($email->getMail(), $validatedBcc, self::MAIL_HEADER_BCC);
             }
             if (isset($validatedCc)) {
                 $this->changeMailHeaders($email->getMail(), $validatedCc, self::MAIL_HEADER_CC);
             }
             $email->setValidatedEmails($validatedRecipients);
         } else {
             $email->setToEmail($validatedRecipients);
         }
         return true;
     }
     return false;
 }