/** sendNewsletter() * * @param mixed string/object recipient * @param object oEmailTemplateInstance * * @return void */ private function sendNewsletter($mRecipient, $oEmailTemplateInstance) { if (is_object($mRecipient)) { $oEmailTemplateInstance->replaceIdentifier('recipient', $mRecipient->getName()); if ($mRecipient instanceof Subscriber && $this->oUnsubscribePage) { $sLanguageId = FrontendManager::shouldIncludeLanguageInLink() ? $this->oNewsletter->getLanguageId() : false; if (method_exists($mRecipient, 'getUnsubscribeQueryParams')) { $sUnsubscribeLink = LinkUtil::absoluteLink(LinkUtil::link($this->oUnsubscribePage->getLink(), 'FrontendManager', $mRecipient->getUnsubscribeQueryParams(), $sLanguageId)); $oEmailTemplateInstance->replaceIdentifier('unsubscribe_link', $sUnsubscribeLink); } } } else { $oEmailTemplateInstance->replaceIdentifier('recipient', $mRecipient); } // Send newsletter and store invalid emails try { $sPlainTextMethod = Settings::getSetting('newsletter', 'plain_text_alternative_method', 'markdown'); $oEMail = null; if ($sPlainTextMethod === null || $sPlainTextMethod === false) { $oEMail = new EMail($this->oNewsletter->getSubject(), $oEmailTemplateInstance, true); } else { $oEMail = new EMail($this->oNewsletter->getSubject(), MIMEMultipart::alternativeMultipartForTemplate($oEmailTemplateInstance, null, null, $sPlainTextMethod), true); } if (is_object($mRecipient)) { $oEMail->addRecipient($mRecipient->getEmail(), $mRecipient->getName() === $mRecipient->getEmail() ? null : $mRecipient->getName()); } else { $oEMail->addRecipient($mRecipient); } $oEMail->setSender($this->sSenderName, $this->sSenderEmailAddress); $oEMail->send(); } catch (Exception $e) { $this->aInvalidEmails[] = new NewsletterSendFailure($e, $mRecipient); } }
/** * sendMail() */ private function sendMail($oEmailTemplate, $bSendHtml = false) { $oEmailTemplate->replaceIdentifier('name', $this->oSubscriber->getName()); $sSenderName = Settings::getSetting('newsletter', 'sender_name', 'Rapila Newsletter Plugin'); $sSenderEmail = Settings::getSetting('newsletter', 'sender_email', LinkUtil::getDomainHolderEmail('no-reply')); $oEmailTemplate->replaceIdentifier('signature', $sSenderName); $oEmailTemplate->replaceIdentifier('weblink', LinkUtil::getHostName()); $oEmail = new EMail(TranslationPeer::getString('wns.subscriber_email.subject'), $oEmailTemplate, $bSendHtml); $oEmail->setSender($sSenderName, $sSenderEmail); $oEmail->addRecipient($this->oSubscriber->getEmail()); $oEmail->send(); }
public static function sendResetMail($oUser, $bShowUserName = false, $sLinkBase = null, $bForceReset = false) { UserPeer::ignoreRights(true); $oUser->setPasswordRecoverHint(PasswordHash::generateHint()); $oUser->save(); $oEmailTemplate = new Template('e_mail_pw_recover', array(DIRNAME_TEMPLATES, 'login')); $oEmailTemplate->replaceIdentifier('full_name', $oUser->getFullName()); $oEmailTemplate->replaceIdentifier('first_name', $oUser->getFirstName()); $oEmailTemplate->replaceIdentifier('last_name', $oUser->getLastName()); $oEmailTemplate->replaceIdentifier('username', $oUser->getUsername()); if ($bShowUserName) { $oEmailTemplate->replaceIdentifier('username_info', TranslationPeer::getString('wns.login.password_reset.your_username') . ': ' . $oUser->getUsername()); } $sInfoTextKey = 'wns.login.password_recover_email_text2'; if ($bForceReset) { $sInfoTextKey = 'wns.login.password_recover_email_text2_force'; } $oEmailTemplate->replaceIdentifier('ignore_or_reset_info', TranslationPeer::getString($sInfoTextKey)); if ($sLinkBase === null) { if (Manager::$CURRENT_MANAGER instanceof FrontendManager) { // We’re most likely on a login page: link to self should be ok $sLinkBase = LinkUtil::linkToSelf(null, null, true); } else { // Use the login manager $sLinkBase = LinkUtil::link(array(), 'LoginManager'); } } $aParams = array('recover_hint' => md5($oUser->getPasswordRecoverHint()), 'recover_username' => $oUser->getUsername()); if (Session::getSession()->hasAttribute('login_referrer')) { $aParams['recover_referrer'] = Session::getSession()->getAttribute('login_referrer'); } $sLink = "http://" . $_SERVER['HTTP_HOST'] . $sLinkBase . LinkUtil::prepareLinkParameters($aParams); $oEmailTemplate->replaceIdentifier('new_pw_url', $sLink); $oEmail = new EMail(TranslationPeer::getString('wns.login.password_recover_email_subject'), $oEmailTemplate); $sSenderAddress = LinkUtil::getDomainHolderEmail('cms'); $oEmail->setSender(Settings::getSetting('domain_holder', 'name', 'rapila on ' . $_SERVER['HTTP_HOST']), $sSenderAddress); $oEmail->addRecipient($oUser->getEmail(), $oUser->getFullName()); $oEmail->send(); }