/** * 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) && ($subscriber->hasCustomerFirstname() || $subscriber->hasCustomerLastname())) { $name = $subscriber->getCustomerFirstname() . ' ' . $subscriber->getCustomerLastname(); } } 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(); $mail->send(Mage::helper('smtp')->getTransport()); $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; }
public function initSubscribe(Mage_Newsletter_Model_Subscriber $subscriber, $options = null, $props = null) { $result = ''; try { $email = $subscriber->getSubscriberEmail(); $firstname = null; if ($subscriber->hasCustomerFirstname()) { $firstname = $subscriber->getCustomerFirstname(); } $lastname = null; if ($subscriber->hasCustomerLastname()) { $lastname = $subscriber->getCustomerLastname(); } $listId = Mage::helper('newsman_newsletter')->getListId(); $ip = Mage::helper('core/http')->getRemoteAddr(); $result = $this->getClient()->subscriber->initSubscribe($listId, $email, $firstname, $lastname, $ip, $props, $options); if ($result == '') { Mage::throwException(Mage::helper('newsman_newsletter')->__('Error on method subscriber.initSubscribe')); } } catch (Exception $e) { Mage::logException($e); } return $result; }