/** * @return Zend_Mail * @throws Zend_Mail_Protocol_Exception */ public static function getMail(Users_Model_User $user, $subject) { $file = CommunityID_Resources::getResourcePath('reminder_mail.txt'); $emailTemplate = file_get_contents($file); $emailTemplate = str_replace('{userName}', $user->getFullName(), $emailTemplate); $currentUrl = Zend_OpenId::selfURL(); preg_match('#(.*)/manageusers/sendreminder#', $currentUrl, $matches); $emailTemplate = str_replace('{registrationURL}', $matches[1] . '/register/eula?token=' . $user->token, $emailTemplate); // can't use $this->_config 'cause it's a static function $configEmail = Zend_Registry::get('config')->email; switch (strtolower($configEmail->transport)) { case 'smtp': Zend_Mail::setDefaultTransport(new Zend_Mail_Transport_Smtp($configEmail->host, $configEmail->toArray())); break; case 'mock': Zend_Mail::setDefaultTransport(new Zend_Mail_Transport_Mock()); break; default: Zend_Mail::setDefaultTransport(new Zend_Mail_Transport_Sendmail()); } $mail = new Zend_Mail('UTF-8'); $mail->setBodyText($emailTemplate); $mail->setFrom($configEmail->supportemail); $mail->addTo($user->email); $mail->setSubject($subject); return $mail; }
public function resetAction() { $users = new Users_Model_Users(); $user = $users->getUserWithToken($this->_getParam('token')); if (!$user) { $this->_helper->FlashMessenger->addMessage($this->view->translate('Wrong Token')); $this->_redirect(''); return; } $newPassword = $user->generateRandomPassword(); $user->setClearPassword($newPassword); // reset token $user->token = Users_Model_User::generateToken(); $user->save(); $file = CommunityID_Resources::getResourcePath('passwordreset2_mail.txt'); $emailTemplate = file_get_contents($file); $emailTemplate = str_replace('{userName}', $user->getFullName(), $emailTemplate); $emailTemplate = str_replace('{password}', $newPassword, $emailTemplate); $this->_sendMail($user->email, $this->view->translate('Community-ID password reset'), $emailTemplate); $this->_helper->FlashMessenger->addMessage($this->view->translate('You\'ll receive your new password via E-mail')); $this->_redirect(''); }