Пример #1
0
 public function received(AW_Advancednewsletter_Model_Subscriber $subscriber, AW_Advancednewsletter_Model_Queue $queue)
 {
     $subscriberLinkTable = Mage::getSingleton('core/resource')->getTableName("advancednewsletter/queue_link");
     $this->_write->beginTransaction();
     try {
         $data['letter_sent_at'] = now();
         $this->_write->update($subscriberLinkTable, $data, array($this->_write->quoteInto('subscriber_id=?', $subscriber->getId()), $this->_write->quoteInto('queue_id=?', $queue->getId())));
         $this->_write->commit();
     } catch (Exception $e) {
         $this->_write->rollBack();
         Mage::throwException(Mage::helper('newsletter')->__('Cannot mark as received subscriber.'));
     }
     return $this;
 }
Пример #2
0
 /**
  * Deleting subscriber from Mailchimp
  * @param AW_Advancednewsletter_Model_Subscriber $subscriber
  * @return AW_Advancednewsletter_Model_Sync_Mailchimp 
  */
 public function delete($subscriber)
 {
     $this->deleteOptional($subscriber->getEmail(), $subscriber->getStoreId());
     return $this;
 }
Пример #3
0
 /**
  * Send mail to subscriber
  *
  * @param   AW_Advancednewsletter_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   AW_Advancednewsletter_Model_Queue|null          $queue        queue model
  * @return boolean
  **/
 public function send($subscriber, array $variables = array(), $name = null, Mage_Newsletter_Model_Queue $queue = null)
 {
     if (!$this->isValidForSend()) {
         return false;
     }
     $email = '';
     if ($subscriber instanceof AW_Advancednewsletter_Model_Subscriber) {
         $email = $subscriber->getEmail();
         $name = $subscriber->getFirstName() . ' ' . $subscriber->getLastName();
         $variables['awunsubscribe'] = '<a href="' . Mage::app()->getStore($subscriber->getStoreId())->getBaseUrl() . 'advancednewsletter/index/unsubscribeall/email/' . $subscriber->getEmail() . '">Unsubscribe</a>';
         $variables['awloginpage'] = '<a href="' . Mage::app()->getStore($subscriber->getStoreId())->getBaseUrl() . 'customer/account/login/">Manage subscriptions</a>';
     } else {
         $email = (string) $subscriber;
         $variables['awunsubscribe'] = '<a href="' . Mage::getBaseUrl() . '"advancednewsletter/index/unsubscribeall/email/' . $email . '">Unsubscribe</a>';
         $variables['awloginpage'] = '<a href="' . Mage::getBaseUrl() . 'customer/account/login/">Manage subscriptions</a>';
     }
     if (Mage::getStoreConfigFlag(Mage_Newsletter_Model_Subscriber::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);
     }
     try {
         $mail->setSubject($this->getProcessedTemplateSubject($variables));
         $mail->setFrom($this->getTemplateSenderEmail(), $this->getTemplateSenderName());
     } catch (Exception $ex) {
     }
     $smtp = Mage::getModel('advancednewsletter/smtp')->load($this->getSmtpId());
     $transport = null;
     if ($smtp->getId()) {
         if ($smtp->getUsessl()) {
             $config = array('ssl' => 'tls', 'port' => $smtp->getPort(), 'auth' => 'login', 'username' => $smtp->getUserName(), 'password' => $smtp->getPassword());
         } else {
             $config = array('port' => $smtp->getPort(), 'auth' => 'login', 'username' => $smtp->getUserName(), 'password' => $smtp->getPassword());
         }
         $transport = new Zend_Mail_Transport_Smtp($smtp->getServerName(), $config);
     }
     try {
         if ($transport) {
             $mail->send($transport);
         } else {
             $mail->send();
         }
         $this->_mail = null;
         if (!is_null($queue)) {
             $subscriber->received($queue);
         }
     } catch (Exception $e) {
         Mage::helper('awcore/logger')->log($this, $e->getMessage());
         return false;
     }
     return true;
 }