/**
  * Send subscriber data through API
  *
  * @param Mage_Newsletter_Model_Subscriber $subscriber
  * @return array
  *
  * @todo add unsubscribe functionality
  */
 public function sendSubscriberData(Mage_Newsletter_Model_Subscriber $subscriber)
 {
     $this->_eventType = 'subscriber';
     try {
         $data = array('id' => $subscriber->getSubscriberEmail(), 'key' => 'email', 'keys' => array('email' => $subscriber->getSubscriberEmail()), 'keysconflict' => 'merge', 'lists' => array(Mage::helper('sailthruemail')->getNewsletterList() => 1), 'vars' => array('subscriberId' => $subscriber->getSubscriberId(), 'status' => $subscriber->getSubscriberStatus(), 'Website' => Mage::app()->getStore()->getWebsiteId(), 'Store' => Mage::app()->getStore()->getName(), 'Store Code' => Mage::app()->getStore()->getCode(), 'Store Id' => Mage::app()->getStore()->getId(), 'fullName' => $subscriber->getSubscriberFullName()), 'fields' => array('keys' => 1), 'optout_email' => $subscriber->getSubscriberStatus() != 1 ? 'blast' : 'none');
         $response = $this->apiPost('user', $data);
         $this->setCookie($response);
     } catch (Sailthru_Email_Model_Client_Exception $e) {
         Mage::logException($e);
     } catch (Exception $e) {
         Mage::logException($e);
     }
     return $this;
 }
Пример #2
0
 /**
  * Send mail to subscriber
  *
  * @param   Mage_Newsletter_Model_Subscriber|string   $subscriber   subscriber Model or E-mail
  * @param   array                                     $variables    template variables
  * @param   string|null                               $name         receiver name (if subscriber model not specified)
  * @param   Mage_Newsletter_Model_Queue|null          $queue        queue model, used for problems reporting.
  * @return boolean
  * @deprecated since 1.4.0.1
  **/
 public function send($subscriber, array $variables = array(), $name = null, Mage_Newsletter_Model_Queue $queue = null)
 {
     if (!$this->isValidForSend()) {
         return false;
     }
     $email = '';
     if ($subscriber instanceof Mage_Newsletter_Model_Subscriber) {
         $email = $subscriber->getSubscriberEmail();
         if (is_null($name)) {
             $name = $subscriber->getSubscriberFullName();
         }
     } else {
         $email = (string) $subscriber;
     }
     if (Mage::getStoreConfigFlag(Mage_Core_Model_Email_Template::XML_PATH_SENDING_SET_RETURN_PATH)) {
         $this->getMail()->setReturnPath($this->getTemplateSenderEmail());
     }
     ini_set('SMTP', Mage::getStoreConfig('system/smtp/host'));
     ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port'));
     $mail = $this->getMail();
     $mail->addTo($email, $name);
     $text = $this->getProcessedTemplate($variables, true);
     if ($this->isPlain()) {
         $mail->setBodyText($text);
     } else {
         $mail->setBodyHTML($text);
     }
     $mail->setSubject($this->getProcessedTemplateSubject($variables));
     $mail->setFrom($this->getTemplateSenderEmail(), $this->getTemplateSenderName());
     try {
         $mail->send();
         $this->_mail = null;
         if (!is_null($queue)) {
             $subscriber->received($queue);
         }
     } catch (Exception $e) {
         if ($subscriber instanceof Mage_Newsletter_Model_Subscriber) {
             // If letter sent for subscriber, we create a problem report entry
             $problem = Mage::getModel('newsletter/problem');
             $problem->addSubscriberData($subscriber);
             if (!is_null($queue)) {
                 $problem->addQueueData($queue);
             }
             $problem->addErrorData($e);
             $problem->save();
             if (!is_null($queue)) {
                 $subscriber->received($queue);
             }
         } else {
             // Otherwise throw error to upper level
             throw $e;
         }
         return false;
     }
     return true;
 }