function testProcessMailRecepients() { $mailer = new lmbMailer(array()); $recs = $mailer->processMailRecipients("bob@localhost"); $this->assertEqual(sizeof($recs), 1); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], ""); $recs = $mailer->processMailRecipients("Bob<bob@localhost>"); $this->assertEqual(sizeof($recs), 1); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], "Bob"); $recs = $mailer->processMailRecipients(array("bob@localhost")); $this->assertEqual(sizeof($recs), 1); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], ""); $recs = $mailer->processMailRecipients(array("name" => "Bob", "address" => "bob@localhost")); $this->assertEqual(sizeof($recs), 1); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], "Bob"); $recs = $mailer->processMailRecipients(array("Bob<bob@localhost>")); $this->assertEqual(sizeof($recs), 1); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], "Bob"); $recs = $mailer->processMailRecipients(array("bob@localhost", "todd@localhost")); $this->assertEqual(sizeof($recs), 2); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], ""); $this->assertEqual($recs[1]['address'], "todd@localhost"); $this->assertEqual($recs[1]['name'], ""); $recs = $mailer->processMailRecipients(array("Bob<bob@localhost>", "todd@localhost")); $this->assertEqual(sizeof($recs), 2); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], "Bob"); $this->assertEqual($recs[1]['address'], "todd@localhost"); $this->assertEqual($recs[1]['name'], ""); $recs = $mailer->processMailRecipients(array(array("name" => "Bob", "address" => "bob@localhost"), "todd@localhost")); $this->assertEqual(sizeof($recs), 2); $this->assertEqual($recs[0]['address'], "bob@localhost"); $this->assertEqual($recs[0]['name'], "Bob"); $this->assertEqual($recs[1]['address'], "todd@localhost"); $this->assertEqual($recs[1]['name'], ""); }
function doForgotPassword() { if (!$this->request->hasPost()) { return; } if (!($user = lmbActiveRecord::findFirst('lmbCmsUser', array('email = ?', $this->request->get('email'))))) { return $this->flashError("Пользователь с таким значением email не найден", array('Field' => 'email')); } $this->useForm('password_form'); if (!$this->error_list->isEmpty()) { return; } $password = $user->generatePassword(); $user->setNewPassword($password); $user->setGeneratedPassword($user->getCryptedPassword($password)); $user->saveSkipValidation(); $template = new lmbMacroView('cms_user/forgot_password_email.txt'); $template->set('user', $user); $template->set('approve_password_url', 'http://' . $_SERVER['HTTP_HOST'] . '/cms_user/approve/' . $user->getGeneratedPassword()); $email_body = $template->render(); $mailer = new lmbMailer(); $mailer->sendPlainMail($user->getEmail(), lmb_env_get('ADMIN_EMAIL', "*****@*****.**"), "Password recovery", $email_body); $this->flashAndRedirect("Новый пароль выслан на ваш email", '/cms_user/login'); }