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