/** * @param $request * @return array of validation messages */ protected function validateRegisterRequest($request) { $messages = array(); // email validations $emailNotEmpty = new \Zend\Validator\NotEmpty(); $emailNotEmpty->setMessage('Email cannot be empty', \Zend\Validator\NotEmpty::IS_EMPTY); $emailValidEmail = new \Zend\Validator\EmailAddress(); $emailValidEmail->setMessage('User email is not a valid email address. Use the basic format local-part@hostname', \Zend\Validator\EmailAddress::INVALID_FORMAT); $emailChain = new \Zend\Validator\ValidatorChain(); $emailChain->attach($emailValidEmail); // is unique $user = $this->em()->getRepository('\\Application\\Entity\\User')->findBy(array('email' => $request['email'])); if (count($user)) { $messages[] = "User with this email already exists"; } // password validations $passwordNotEmpty = new \Zend\Validator\NotEmpty(); $passwordNotEmpty->setMessage("User password cannot be empty", \Zend\Validator\NotEmpty::IS_EMPTY); $passwordStringLength = new \Zend\Validator\StringLength(['min' => 4, 'max' => 20]); $passwordStringLength->setMessage("User password is less than %min% characters long", \Zend\Validator\StringLength::TOO_SHORT); $passwordStringLength->setMessage("User password is more than %max% characters long", \Zend\Validator\StringLength::TOO_LONG); $passwordChain = new \Zend\Validator\ValidatorChain(); $passwordChain->attach($passwordNotEmpty)->attach($passwordStringLength); if (!$passwordChain->isValid($request['password'])) { $messages = array_merge($messages, $passwordChain->getMessages()); } if (!$emailChain->isValid($request['email'])) { $messages = array_merge($messages, $emailChain->getMessages()); } return $messages; }
public function forgotPasswordAction() { $this->layout('layout/login'); $form = $this->getServiceLocator()->get('FormElementManager')->get('Application\\Form\\Auth\\ForgotPasswordForm'); $message = "Please enter email address to send the temporary password to"; $request = $this->getRequest(); if ($request->isPost()) { $validator = new \Zend\Validator\EmailAddress(); $email = $request->getPost('username'); if ($validator->isValid($email)) { $newsBoy = new \Application\Model\SystemMailer(); try { $newsBoy->setEmailTo($email); $newsBoy->setEmailSubject("About Reinsuing your password"); $newsBoy->setEmailBody("This is your tem password: sdsd4sd4s4ds4"); $newsBoy->sendMessage(); } catch (\Exception $e) { $this->flashMessenger()->addErrorMessage($e->getMessage()); $this->redirect()->toRoute('auth', array('action' => 'forgot-password')); } $message = "Thank you! Your temporary password was sent to <b>" . $email . '</b>'; $message .= "<br>Please check your email for further instructions..."; $form->get('username')->setValue($email); $form->get('username')->setAttributes(array('disabled' => 'disabled')); } } return array('form' => $form, 'message' => $message); }
public function checkAdministratorUserExists($email, $password) { try { if (empty($email)) { throw new Exception('NO_EMAIL'); } } catch (Exception $e) { return $e; } try { if (empty($password)) { throw new Exception('NO_PASSWORD'); } } catch (Exception $e) { return $e; } $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($email)) { // email appears to be valid } else { // email is invalid; print the reasons foreach ($validator->getMessages() as $message) { echo "{$message}\n"; } } }
/** * Validiert die übergebene E-Mail Adresse * @param string $emailaddress * @return Emailaddress * @throws \DragonJsonServer\Exception */ public function validateEmailaddress($emailaddress) { $validator = new \Zend\Validator\EmailAddress(); if (!$validator->isValid($emailaddress)) { throw new \DragonJsonServer\Exception('invalid emailaddress', ['emailaddress' => $emailaddress]); } return $this; }
public function __construct() { $this->add(array('name' => 'nome', 'required' => true, 'filter' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Nao pode estar em branco')))))); $validator = new \Zend\Validator\EmailAddress(); $validator->setOptions(array('domain' => FALSE)); $this->add(array('name' => 'email', 'validator' => array($validator), 'class' => 'form-group')); $this->add(array('name' => 'password', 'required' => true, 'filter' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Nao pode estar em branco')))))); $this->add(array('name' => 'confirmation', 'required' => true, 'filter' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Não pode estar em braco')), 'name' => 'Identical', 'options' => array('token' => 'password'))))); }
public function __construct() { $this->add(array('name' => 'nome', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Não pode deixar em branco')))))); $validatorEmail = new \Zend\Validator\EmailAddress(); $validatorEmail->setOptions(array('name' => 'NotEmpty', 'domain' => false, 'options' => array('messages' => array('isEmpty' => 'Não pode deixar em branco')))); $this->add(array('name' => 'email', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array($validatorEmail))); $this->add(array('name' => 'password', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Não pode deixar em branco')))))); $this->add(array('name' => 'confirmation', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'Identical', 'options' => array('token' => 'password'))))); }
protected function setEmailAddress($sEmailAddress) { $oEmailAddressValidator = new \Zend\Validator\EmailAddress(); if ($oEmailAddressValidator->isValid($sEmailAddress)) { $this->email_address = $sEmailAddress; } else { $this->email_address = ''; } }
public function __construct() { $this->add(array('name' => 'nome', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor Informe o nome para cadastro')))))); $validator = new \Zend\Validator\EmailAddress(); $validator->setOptions(array('domain' => FALSE)); $this->add(array('name' => 'email', 'validators' => array($validator))); $this->add(array('name' => 'cpf', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor Informe o CPF para cadastro')))))); $this->add(array('name' => 'password', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor Informe a senha para cadastro')))))); $this->add(array('name' => 'confirmation ', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor confirme a senha para cadastro')), 'name' => 'Identical', 'options' => array('token' => 'password'))))); }
/** * Receives input from the user and sends an email to the recipient set in * the config.ini * * @return void */ public function emailAction() { $category = $this->params()->fromPost('category'); $name = $this->params()->fromPost('name'); $users_email = $this->params()->fromPost('email'); $comments = $this->params()->fromPost('comments'); $url = $this->params()->fromPost('url'); $captcha = $this->params()->fromPost('captcha'); if (empty($captcha) || $captcha != $this->translate('feedback_captcha_answer')) { $view = $this->createViewModel(); $this->flashMessenger()->addErrorMessage('feedback_captcha_error'); return $view; } if (empty($comments)) { throw new \Exception('Missing data.'); } $validator = new \Zend\Validator\EmailAddress(); if (!empty($users_email) && !$validator->isValid($users_email)) { throw new \Exception('Email address is invalid'); } // These settings are set in the feedback settion of your config.ini $config = $this->getServiceLocator()->get('VuFind\\Config')->get('config'); $feedback = isset($config->Feedback) ? $config->Feedback : null; $recipient_email = isset($feedback->recipient_email) ? $feedback->recipient_email : null; $recipient_name = isset($feedback->recipient_name) ? $feedback->recipient_name : 'Your Library'; $email_subject = isset($feedback->email_subject) ? $feedback->email_subject : 'VuFind Feedback'; $email_subject .= ' (' . $this->translate($category) . ')'; $sender_email = isset($feedback->sender_email) ? $feedback->sender_email : '*****@*****.**'; $sender_name = isset($feedback->sender_name) ? $feedback->sender_name : 'VuFind Feedback'; if ($recipient_email == null) { throw new \Exception('Feedback Module Error: Recipient Email Unset (see config.ini)'); } $email_message = $this->translate('feedback_category') . ': ' . $this->translate($category) . "\n"; $email_message .= $this->translate('feedback_name') . ': ' . ($name ? $name : '-') . "\n"; $email_message .= $this->translate('feedback_email') . ': ' . ($users_email ? $users_email : '-') . "\n"; $email_message .= $this->translate('feedback_url') . ': ' . ($url ? $url : '-') . "\n"; $email_message .= "\n" . $this->translate('feedback_message') . ":\n"; $email_message .= "----------\n\n{$comments}\n\n---------\n"; // This sets up the email to be sent $mail = new Mail\Message(); $mail->setEncoding('UTF-8'); $mail->setBody($email_message); $mail->setFrom($sender_email, $sender_name); $mail->addTo($recipient_email, $recipient_name); $mail->setSubject($email_subject); $headers = $mail->getHeaders(); $headers->removeHeader('Content-Type'); $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8'); $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail); }
/** * Create record feedback form and send feedback to correct recipient. * * @return mixed * @throws \Exception */ public function feedbackAction() { $view = $this->createViewModel(); if ($this->formWasSubmitted('submitFeedback')) { $flashMsg = $this->flashMessenger(); $message = $this->params()->fromPost('feedback_message'); $senderEmail = $this->params()->fromPost('from'); $validator = new \Zend\Validator\EmailAddress(); if (!$validator->isValid($senderEmail)) { $flashMsg->setNamespace('error')->addMessage('Email address is invalid'); return $view; } $driver = $this->loadRecord(); $dataSource = $driver->getDataSource(); $dataSources = $this->getServiceLocator()->get('VuFind\\Config')->get('datasources'); $inst = isset($dataSources->{$dataSource}) ? $dataSources->{$dataSource} : null; $recipientEmail = isset($inst->feedbackEmail) ? $inst->feedbackEmail : null; if ($recipientEmail == null) { throw new \Exception('Feedback Module Error:' . 'Recipient Email Unset (see datasources.ini)'); } $emailSubject = $this->translate('feedback_on_record', ['%%record%%' => $driver->getBreadcrumb()]); $serverUrl = $this->getRequest()->getServer('REQUEST_SCHEME'); $serverUrl .= '://' . $this->getRequest()->getServer('HTTP_HOST'); $emailMessage = "\n" . $this->translate('This email was sent from'); $emailMessage .= ": " . $senderEmail . "\n"; $emailMessage .= "------------------------------------------------------------\n"; $emailMessage .= $this->getViewRenderer()->partial('RecordDriver/SolrDefault/result-email.phtml', ['driver' => $driver, 'info' => ['baseUrl' => $serverUrl]]); $emailMessage .= "------------------------------------------------------------\n"; if (!empty($message)) { $emailMessage .= "\n" . $this->translate('Message From Sender') . ":\n"; $emailMessage .= "\n" . $message . "\n\n"; } // This sets up the email to be sent $mail = new Mail\Message(); $mail->setEncoding('UTF-8'); $mail->setBody($emailMessage); $mail->setFrom($senderEmail); $mail->addTo($recipientEmail); $mail->setSubject($emailSubject); $headers = $mail->getHeaders(); $headers->removeHeader('Content-Type'); $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8'); $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail); if (!$this->inLightbox()) { $flashMsg->setNamespace('info')->addMessage('Thank you for your feedback'); $this->redirectToRecord(''); } } return $view; }
public function index04Action() { echo "<h3 style='color:red;font-weight:bold'>" . __METHOD__ . "</h3>"; $validator = new \Zend\Validator\EmailAddress(); $input = "*****@*****.**"; //ok $input = "trongle@gmail"; //not ok $input = "trongle@.com"; //not ok if (!$validator->isValid($input)) { $message = $validator->getMessages(); echo current($message); } else { echo "ok"; } return false; }
/** * Receives input from the user and sends an email to the recipient set in * the config.ini * * @return void */ public function emailAction() { $name = $this->params()->fromPost('name'); $users_email = $this->params()->fromPost('email'); $comments = $this->params()->fromPost('comments'); if (empty($name) || empty($users_email) || empty($comments)) { throw new \Exception('Missing data.'); } $validator = new \Zend\Validator\EmailAddress(); if (!$validator->isValid($users_email)) { throw new \Exception('Email address is invalid'); } // These settings are set in the feedback settion of your config.ini $config = $this->getServiceLocator()->get('VuFind\\Config')->get('config'); $feedback = isset($config->Feedback) ? $config->Feedback : null; $recipient_email = isset($feedback->recipient_email) ? $feedback->recipient_email : null; $recipient_name = isset($feedback->recipient_name) ? $feedback->recipient_name : 'Your Library'; $email_subject = isset($feedback->email_subject) ? $feedback->email_subject : 'VuFind Feedback'; $sender_email = isset($feedback->sender_email) ? $feedback->sender_email : '*****@*****.**'; $sender_name = isset($feedback->sender_name) ? $feedback->sender_name : 'VuFind Feedback'; if ($recipient_email == null) { throw new \Exception('Feedback Module Error: Recipient Email Unset (see config.ini)'); } if ($comments == "") { throw new \Exception('Feedback Module Error: Comment Post Failed'); } $email_message = 'Name: ' . $name . "\n"; $email_message .= 'Email: ' . $users_email . "\n"; $email_message .= 'Comments: ' . $comments . "\n"; // This sets up the email to be sent $mail = new Mail\Message(); $mail->setBody($email_message); $mail->setFrom($sender_email, $sender_name); $mail->addTo($recipient_email, $recipient_name); $mail->setSubject($email_subject); $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail); }
/** * Validate if the User exists, if true then validate password * * Returns JsonModel the Contact information */ private function authenticate(&$data) { // Look for username on the Contact table, might be Email or UserId. $ContactController = $this->getServiceLocator()->get('ContactController'); $ContactController->setValidateOAuth(false); $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($data['id'])) { // email appears to be valid, Let us look for EMail $field = CONTACT_EMAIL; } else { // email is invalid; so look for UserId $field = CONTACT_USERID; } $query = array(QUERY_STRING_WHERE => "{$field}='" . $data['id'] . "'"); $contact = $ContactController->query($query); if (count($contact) <= 0) { // User Not found on Contact table, Email or Userid // I have no other choice than throwing an exception throw new CommonException(array('messageId' => 'globals.query.record_not_found', 'parms' => array('id' => $data['id']), EXCEPTION_ERRORKEY => 404)); } else { $contact = $contact[0]; } /* if ( $contact->getVariable( EXCEPTION_ERRORKEY ) == 404 ) { // User Not found on Contact table, Email or Userid // I have no other choice than throwing an exception throw new CommonException ( array( 'messageId' => 'globals.query.record_not_found' ,'parms' => array( 'id' => $data[ USERNAME ] ) ,EXCEPTION_ERRORKEY => 404 ) ); } */ // Now I pass the pk Id value of the contact to the UserName attribute as this is the one // We are going to use to search inside the Oauth_users table // $data[ USERID ] = strval( $contact->getVariable( $ContactController->getTable( )->getPk( ) ) ); $data[USERID] = strval($contact[$ContactController->getTable()->getPk()]); $this->getAuthService()->getAdapter()->setIdentity($data[USERID])->setCredential($data['pwd']); $result = $this->getAuthService()->authenticate(); if (!$result->isValid()) { switch ($result->getCode()) { /* Possible Results Result::SUCCESS Result::FAILURE Result::FAILURE_IDENTITY_NOT_FOUND Result::FAILURE_IDENTITY_AMBIGUOUS Result::FAILURE_CREDENTIAL_INVALID Result::FAILURE_UNCATEGORIZED */ case Result::FAILURE_IDENTITY_NOT_FOUND: /** do stuff for nonexistent identity **/ // TODO - Something unusual is happening, because the Identity MUST exist // on the Oauth_users table, so maybe I should send a warning to the // administrator. break; case Result::FAILURE_CREDENTIAL_INVALID: /** do stuff for invalid credential **/ break; case Result::SUCCESS: /** do stuff for successful authentication **/ break; default: /** do stuff for other failure **/ break; } $messages = null; foreach ($result->getMessages() as $message) { if ($messages) { $messages .= ' - '; } $messages .= $message; } throw new Exception($messages, 401); } return $contact; }
public function ajaxaddbookAction() { /* @var $request \Zend\Http\Request */ $request = $this->getRequest(); $sl = $this->getServiceLocator(); $valEmail = new \Zend\Validator\EmailAddress(); $valRequired = new \Zend\Validator\NotEmpty(); $valMobile = new \Zend\Validator\Regex("/^[0-9]+\$/"); if (!$valRequired->isValid($request->getPost('name'))) { return new JsonModel(array('code' => 0, 'messages' => array('name' => 'Họ tên không được để trống'))); } if (!$valRequired->isValid($request->getPost('mobile'))) { return new JsonModel(array('code' => 0, 'messages' => array('mobile' => 'Điện thoại không được để trống'))); } if (!$valMobile->isValid($request->getPost('mobile'))) { return new JsonModel(array('code' => 0, 'messages' => array('mobile' => 'Điện thoại không hợp lệ'))); } if (!$valRequired->isValid($request->getPost('email'))) { return new JsonModel(array('code' => 0, 'messages' => array('email' => 'Email không được để trống'))); } if (!$valEmail->isValid($request->getPost('email'))) { return new JsonModel(array('code' => 0, 'messages' => array('email' => 'Email không hợp lệ'))); } if (!$valRequired->isValid($request->getPost('cityId'))) { return new JsonModel(array('code' => 0, 'messages' => array('cityId' => 'Thành phố không được để trống'))); } if (!$valRequired->isValid($request->getPost('districtId'))) { return new JsonModel(array('code' => 0, 'messages' => array('districtId' => 'Quận huyện không được để trống'))); } if (!$valRequired->isValid($request->getPost('address'))) { return new JsonModel(array('code' => 0, 'messages' => array('address' => 'Địa chỉ không được để trống'))); } $address = new \Address\Model\Book(); $address->exchangeArray((array) $request->getPost()); $address->setCreatedById($this->user()->getUser()->getId()); /* @var $addMapper \Address\Model\BookMapper */ $addMapper = $sl->get('Address\\Model\\BookMapper'); $addMapper->saveAddress($address); if ($request->getPost("id")) { //If this action is used to edit a book return new JsonModel(['code' => 0]); } else { //Get the address that was just entered to DB $newaddr = $addMapper->searchAddress($address)[0]; return new JsonModel(['code' => 1, 'address' => ['id' => $newaddr->getId(), 'name' => $newaddr->getName(), 'email' => $newaddr->getEmail(), 'mobile' => $newaddr->getMobile(), 'address' => $newaddr->getAddress(), 'cityId' => $newaddr->getCityId(), 'cityName' => $newaddr->getCityName(), 'districtId' => $newaddr->getDistrictId(), 'districtName' => $newaddr->getDistrictName()]]); } }
if (!is_null($console->getOption('languages'))) { $languages = $console->getOption('languages'); } $locales = array_map(function ($locale) { return trim($locale); }, explode(',', $languages)); //if (isset($console->jsdir) && is_dir($console->jsdir)) { // $jsDir = $console->jsdir; //} else { // echo "\nInvalid jsdir"; // exit(1); //} $onlyCompress = isset($console->oc) ? !!$console->oc : false; $bugsEmail = 'localhost@localdomain'; if (!is_null($console->getOption('email'))) { $validate = new \Zend\Validator\EmailAddress(); if ($validate->isValid($console->getOption('email'))) { $bugsEmail = $console->getOption('email'); } else { $console->error('Invalid email address [' . $console->getOption('email') . ']. Please define valid'); } } $extensions = array('php' => array('Php'), 'phtml' => array('Phtml'), 'xml' => array('Xml'), 'json' => array('Json')); $system = new \Zf2TranslationScanner\System(); $wordsContainer = new \Zf2TranslationScanner\WordsContainer(); /** * Parse project. Find All phrases for translation */ $console->log('Cleaning temporary files...'); $system->remove($tmpDir . '/' . $translationWordsDir); $console->log("Starting to collect translatable strings...");
$email_test_tw = '*****@*****.**'; $smarty->assign('email_test_tw', $email_test_tw); // Sytem requirements test. if ($install_step == '2') { $smarty->assign('mail_test_performed', 'n'); if (isset($_POST['perform_mail_test']) && $_POST['perform_mail_test'] == 'y') { $email_test_to = $email_test_tw; $email_test_headers = ''; $email_test_ready = true; if (!empty($_POST['email_test_to'])) { $email_test_to = $_POST['email_test_to']; if (isset($_POST['email_test_cc']) && $_POST['email_test_cc'] == '1') { $email_test_headers .= "Cc: {$email_test_tw}\n"; } // check email address format $validator = new Zend\Validator\EmailAddress(); if (!$validator->isValid($email_test_to)) { $smarty->assign('email_test_err', tra('Email address not valid, test mail not sent')); $email_test_ready = false; } } else { // no email supplied, check copy checkbox if (!isset($_POST['email_test_cc']) || $_POST['email_test_cc'] != '1') { $smarty->assign('email_test_err', tra('Email address empty and "copy" checkbox not set, test mail not sent')); $email_test_ready = false; } } $smarty->assign('email_test_to', $email_test_to); if ($email_test_ready) { // so send the mail $email_test_headers .= 'From: noreply@tiki.org' . "\n";
/** * @param \User\Model\User $user * @return array */ public function validateSignupInfo(\User\Model\User $user) { $error = array(); $validateRequire = new \Zend\Validator\StringLength(array('min' => 6)); $validateEmail = new \Zend\Validator\EmailAddress(); $validateUsername = new \Zend\Validator\Db\NoRecordExists(array('table' => 'users', 'field' => 'username', 'adapter' => $this->getServiceLocator()->get('dbAdapter'))); $validateUserEmail = new \Zend\Validator\Db\NoRecordExists(array('table' => 'users', 'field' => 'email', 'adapter' => $this->getServiceLocator()->get('dbAdapter'))); if (!$validateUsername->isValid($user->getUsername())) { $error['username'] = self::DULICATE_USERNAME; } if (!$validateRequire->isValid($user->getUsername())) { $error['username'] = self::USERNAME_REQUIRED; } if (!$validateRequire->isValid($user->getPassword())) { $error['password'] = self::PASSWORD_REQUIRED; } if (!$validateUserEmail->isValid($user->getEmail())) { $error['email'] = self::DULICATE_USEREMAIL; } if (!$validateEmail->isValid($user->getEmail())) { $error['email'] = self::INVALID_EMAIL_FORMAT; } return $error; }
/** * Change phone number and email from library info. * * @param type $profile patron data * @param type $values form values * * @return type */ protected function processLibraryDataUpdate($profile, $values) { $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($values->profile_email)) { // ToDo: Save mail } // ToDo: Save phone $values->profile_tel }
/** * Send an email message. * * @param string $to Recipient email address (or delimited list) * @param string $from Sender email address * @param string $subject Subject line for message * @param string $body Message body * @param string $cc CC recipient (null for none) * * @throws MailException * @return void */ public function send($to, $from, $subject, $body, $cc = null) { $recipients = $this->stringToAddressList($to); // Validate email addresses: if ($this->maxRecipients > 0 && $this->maxRecipients < count($recipients)) { throw new MailException('Too Many Email Recipients'); } $validator = new \Zend\Validator\EmailAddress(); if (count($recipients) == 0) { throw new MailException('Invalid Recipient Email Address'); } foreach ($recipients as $current) { if (!$validator->isValid($current->getEmail())) { throw new MailException('Invalid Recipient Email Address'); } } if (!$validator->isValid($from)) { throw new MailException('Invalid Sender Email Address'); } // Convert all exceptions thrown by mailer into MailException objects: try { // Send message $message = $this->getNewMessage()->addTo($to)->setBody($body)->setSubject($subject); if ($this->from == null) { $message->addFrom($from); } else { $message->setReplyTo($from); $message->addFrom($this->from); } if ($cc !== null) { $message->addCc($cc); } $this->getTransport()->send($message); } catch (\Exception $e) { throw new MailException($e->getMessage()); } }
/** * Create record feedback form and send feedback to correct recipient. * * @return \Zend\View\Model\ViewModel * @throws \Exception */ public function feedbackAction() { $view = $this->createViewModel(); if ($this->formWasSubmitted('submitFeedback')) { $flashMsg = $this->flashMessenger(); $message = $this->params()->fromPost('feedback_message'); $senderEmail = $this->params()->fromPost('from'); $validator = new \Zend\Validator\EmailAddress(); if (!$validator->isValid($senderEmail)) { $flashMsg->setNamespace('error')->addMessage('Email address is invalid'); return $view; } $driver = $this->loadRecord(); $dataSource = $driver->getDataSource(); $dataSources = $this->getServiceLocator()->get('VuFind\\Config')->get('datasources'); $inst = isset($dataSources->{$dataSource}) ? $dataSources->{$dataSource} : null; $recipientEmail = isset($inst->feedbackEmail) ? $inst->feedbackEmail : null; if ($recipientEmail == null) { throw new \Exception('Feedback Module Error:' . 'Recipient Email Unset (see datasources.ini)'); } $emailSubject = $this->translate('feedback_on_record', ['%%record%%' => $driver->getBreadcrumb()]); $serverUrl = $this->getRequest()->getServer('REQUEST_SCHEME'); $serverUrl .= '://' . $this->getRequest()->getServer('HTTP_HOST'); $emailMessage = "\n" . $this->translate('This email was sent from'); $emailMessage .= ": " . $senderEmail . "\n"; $emailMessage .= "------------------------------------------------------------\n"; // Use the record plugin to render the template for the correct driver $recordPlugin = $this->getViewRenderer()->plugin('record'); $emailMessage .= $recordPlugin($driver)->getEmail(); $emailMessage .= "\n\n------------------------------------------------------------\n"; if (!empty($message)) { $emailMessage .= "\n" . $this->translate('Message From Sender') . ":\n"; $emailMessage .= "\n" . $message . "\n\n"; } // This sets up the email to be sent $mail = new Mail\Message(); $mail->setEncoding('UTF-8'); $mail->setBody($emailMessage); $mail->setFrom($senderEmail); $mail->addTo($recipientEmail); try { $mail->setSubject($emailSubject); } catch (\Exception $e) { // Uhh.. PHP bug https://bugs.php.net/bug.php?id=53891 causes trouble // when trying to encode a subject containing non-ascii characters. // Try to convert the subject to ascii.. // TODO: Remove this when PHP works properly.. $emailSubject = iconv('UTF-8', 'ascii//TRANSLIT', $emailSubject); $mail->setSubject($emailSubject); } $headers = $mail->getHeaders(); $headers->removeHeader('Content-Type'); $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8'); $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail); $flashMsg->addSuccessMessage('Thank you for your feedback.'); if ($this->getRequest()->getQuery('layout', 'no') !== 'lightbox' || 'layout/lightbox' != $this->layout()->getTemplate()) { $this->redirectToRecord(''); } } return $view; }
/** * Change phone number and email from library info. * * @param type $profile patron data * @param type $values form values * * @return type */ protected function processLibraryDataUpdate($profile, $values) { // Connect to the ILS: $catalog = $this->getILS(); $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($values->profile_email)) { //Update Email $result = $catalog->updateEmail($profile, $values->profile_email); } // Update Phone $result = $result && $catalog->updatePhone($profile, $values->profile_tel); return $result; }
public function changeMyInfoAction() { $this->checkAuth(); $value = $this->getRequest()->getPost('value'); $name = $this->getRequest()->getPost('name'); $id = $this->auth->getIdentity()->id; $selected_user = new User(NULL, NULL, NULL, NULL); $selected_user->email = NULL; $selected_user->phone = NULL; $selected_user->note = NULL; $selected_user->name = NULL; if ($name == "pro-email") { $result = new Xeditable(); $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($value)) { $selected_user->email = $value; $this->databaseService->changeUserInfo($id, $selected_user); $this->user->email = $value; } else { $result->setStatus(Xeditable::STATUS_ERROR); $result->setMsg(Xeditable::MSG_DATA_ERROR); } echo \Zend\Json\Json::encode($result, false); exit; } if ($name == "pro-phone") { $result = new Xeditable(); $validator = new \Zend\Validator\NotEmpty(); if ($validator->isValid($value)) { $selected_user->phone = $value; $this->databaseService->changeUserInfo($id, $selected_user); $this->user->phone = $value; } else { $result->setStatus(Xeditable::STATUS_ERROR); $result->setMsg(Xeditable::MSG_DATA_ERROR); } echo \Zend\Json\Json::encode($result, false); exit; } if ($name == "pro-name") { $result = new Xeditable(); $validator = new \Zend\Validator\NotEmpty(); if ($validator->isValid($value)) { $selected_user->name = $value; $this->databaseService->changeUserInfo($id, $selected_user); $this->user->phone = $value; } else { $result->setStatus(Xeditable::STATUS_ERROR); $result->setMsg(Xeditable::MSG_DATA_ERROR); } echo \Zend\Json\Json::encode($result, false); exit; } if ($name == "pro-note") { $result = new Xeditable(); $validator = new \Zend\Validator\NotEmpty(); if ($validator->isValid($value)) { $selected_user->note = $value; $this->databaseService->changeUserInfo($id, $selected_user); $this->user->note = $value; } else { $result->setStatus(Xeditable::STATUS_ERROR); $result->setMsg(Xeditable::MSG_DATA_ERROR); } echo \Zend\Json\Json::encode($result, false); exit; } $result = new Xeditable(); $result->setStatus(Xeditable::STATUS_ERROR); $result->setMsg(Xeditable::MSG_DATA_EMPTY); echo \Zend\Json\Json::encode($result, false); exit; }
protected function emailSubmitPrecheck() { $request = $this->getRequest(); if ($request->isPost()) { $post_data = $request->getPost(); $email = trim($post_data['email']); if (empty($email)) { throw new \Exception('Empty value!'); } $validator = new \Zend\Validator\EmailAddress(); $msg = ''; if (!$validator->isValid($email)) { // email is invalid; print the reasons foreach ($validator->getMessages() as $messageId => $message) { $msg .= "Validation failure '{$messageId}': {$message}\n"; } throw new \Exception($msg); } else { return true; } } else { throw new \Exception('Error method!'); } }
/** * @param $email * @return mixed */ function validate_email($email) { $validate = new Zend\Validator\EmailAddress(['allow' => Zend\Validator\Hostname::ALLOW_ALL]); return $validate->isValid($email); }
/** * sets $email * * @param string email * @return Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail */ public function setEmail($email) { $validator = new Zend\Validator\EmailAddress(); if (!$validator->isValid($email)) { throw new Zend_Service_DeveloperGarden_Exception('Not a valid e-mail address.'); } $this->email = $email; return $this; }
public function loginByPassword($loginIdentity, $password) { $identityType = 'userName'; if (is_numeric($loginIdentity)) { $identityType = 'mobile'; } else { $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($loginIdentity)) { $identityType = 'email'; } } switch ($identityType) { case 'email': $dbWhere = array('email' => $loginIdentity); $identityColumn = 'email'; break; case 'mobile': $dbWhere = array('mobile' => $loginIdentity); $identityColumn = 'mobile'; break; default: $dbWhere = array('userName' => $loginIdentity); $identityColumn = 'userName'; } $auth = Auth::factory(); $user = $this->getItem()->getDataClass()->columns(array('id', 'salt', 'userName'))->where($dbWhere)->find('one'); if (!$user || !$user['id']) { return $this->loginResult = new Result(Result::FAILURE_IDENTITY_NOT_FOUND, $loginIdentity, array(Result::FAILURE_IDENTITY_NOT_FOUND => 'A record with the supplied identity could not be found.')); } if (!$user['salt']) { throw new \Exception(sprintf('User authention salt not found')); } $bcrypt = new \Zend\Crypt\Password\Bcrypt(); $bcrypt->setSalt($user['salt']); $password = $bcrypt->create($password); $this->loginResult = $loginResult = $auth->getAuthService(array('tableName' => 'user_users', 'identityColumn' => $identityColumn, 'credentialColumn' => 'password'))->getAdapter()->setIdentity($loginIdentity)->setCredential($password)->authenticate(); if ($loginResult->isValid()) { return $this->loginById($user['id']); } return $loginResult; }
/** * Create a new user account from the request. * * @param \Zend\Http\PhpEnvironment\Request $request Request object containing * new account details. * * @throws AuthException * @return \VuFind\Db\Row\User New user row. */ public function create($request) { // Ensure that all expected parameters are populated to avoid notices // in the code below. $params = ['firstname' => '', 'lastname' => '', 'username' => '', 'password' => '', 'password2' => '', 'email' => '']; foreach ($params as $param => $default) { $params[$param] = $request->getPost()->get($param, $default); } // Validate Input $this->validateUsernameAndPassword($params); // Invalid Email Check $validator = new \Zend\Validator\EmailAddress(); if (!$validator->isValid($params['email'])) { throw new AuthException('Email address is invalid'); } if (!$this->emailAllowed($params['email'])) { throw new AuthException('authentication_error_creation_blocked'); } // Make sure we have a unique username $table = $this->getUserTable(); if ($table->getByUsername($params['username'], false)) { throw new AuthException('That username is already taken'); } // Make sure we have a unique email if ($table->getByEmail($params['email'])) { throw new AuthException('That email address is already used'); } // If we got this far, we're ready to create the account: $data = ['username' => $params['username'], 'firstname' => $params['firstname'], 'lastname' => $params['lastname'], 'email' => $params['email'], 'created' => date('Y-m-d H:i:s')]; if ($this->passwordHashingEnabled()) { $bcrypt = new Bcrypt(); $data['pass_hash'] = $bcrypt->create($params['password']); } else { $data['password'] = $params['password']; } // Create the row and send it back to the caller: $table->insert($data); return $table->getByUsername($params['username'], false); }
public function authenticate(AuthEvent $e) { $mapper = new \ZfcUserLdap\Mapper\User($this->getServiceManager()->get('ldap_interface'), $this->getServiceManager()->get('zfcuser_module_options')); $this->setMapper($mapper); if ($this->isSatisfied()) { $storage = $this->getStorage()->read(); $e->setIdentity($storage['identity'])->setCode(AuthenticationResult::SUCCESS)->setMessages(array('Authentication successful.')); return; } $identity = $e->getRequest()->getPost()->get('identity'); $credential = $e->getRequest()->getPost()->get('credential'); $userObject = NULL; /* * In some special case scenarios some LDAP providers allow LDAP * logins via email address both as uid or as mail address lookup, * so to provide an interface to both we do a validator instead of * a loop to verify if it's an email address or not and pull the user. * * Authentication will then be done on the *actual* username set in LDAP * which in some cases may be case sensitive which could cause an issue * where users do not exist if their email was created with upper case * letters and the user types in lower case. * * $fields = $this->getOptions()->getAuthIdentityFields(); */ $zulConfig = $this->getServiceManager()->get('config')['ZfcUserLdap']; // var_dump($zulConfig); // var_dump($zulConfig['auto_insertion']['enabled']); // exit(); $em = $this->getServiceManager()->get('doctrine.entitymanager.orm_default'); $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($identity)) { $userObject = $this->getMapper()->findByEmail($identity); } else { $userObject = $this->getMapper()->findByUsername($identity); } if (!$userObject) { $e->setCode(AuthenticationResult::FAILURE_IDENTITY_NOT_FOUND)->setMessages(array('A record with the supplied identity could not be found.')); $this->setSatisfied(false); return false; } if ($this->getOptions()->getEnableUserState()) { // Don't allow user to login if state is not in allowed list if (!in_array($userObject->getState(), $this->getOptions()->getAllowedLoginStates())) { $e->setCode(AuthenticationResult::FAILURE_UNCATEGORIZED)->setMessages(array('A record with the supplied identity is not active.')); $this->setSatisfied(false); return false; } } if ($auth = $this->getMapper()->authenticate($userObject->getUsername(), $credential) !== TRUE) { // var_dump($this->getMapper()->authenticate($userObject->getUsername(), $credential)); // exit(); // Password does not match $e->setCode(AuthenticationResult::FAILURE_CREDENTIAL_INVALID)->setMessages(array($auth)); $this->setSatisfied(false); return false; } // If auto insertion is on, we will check against DB for existing user, // then will create or update user depending on results and settings if ($zulConfig['auto_insertion']['enabled']) { $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($identity)) { $userDbObject = $em->getRepository('ZfcUserLdap\\Entity\\User')->findOneBy(array('mail' => $identity)); } else { $userDbObject = $em->getRepository('ZfcUserLdap\\Entity\\User')->findOneBy(array('username' => $identity)); } if ($userDbObject === NULL) { $supportedRoles = array(); $roles = $em->getRepository('ZfcUserLdap\\Entity\\Role')->findAll(); foreach ($roles as $role) { $supportedRoles[$role->getRoleId()] = $role->getId(); } $em->persist($userObject); foreach ($userObject->getMemberof() as $k => $v) { foreach ($roles as $r) { if ($v == $r->getRoleId()) { $userObject->addRole($r); } } } $roles = $em->getRepository('ZfcUserLdap\\Entity\\Role')->findBy(array("roleId" => "user")); if (count($roles)) { $userObject->addRole($roles[0]); } // var_dump($roles); // exit(); $em->persist($userObject); $em->flush(); } elseif ($zulConfig['auto_insertion']['auto_update']) { $supportedRoles = array(); $roles = $em->getRepository('ZfcUserLdap\\Entity\\Role')->findAll(); foreach ($roles as $role) { $supportedRoles[$role->getRoleId()] = $role->getId(); } $member_off = array(); foreach ($userObject->getMemberof() as $k => $v) { if (isset($supportedRoles[$v])) { $member_off[] = $v; } } $exists_roles = array(); foreach ($userDbObject->getRoles() as $k => $v) { $exists_roles[] = $v; } /** * ������� ��� ����, ������� ������� �� ��������� */ foreach ($userDbObject->getRolesObj() as $role1) { if (!in_array($role1->getRoleId(), $member_off) && $role1->getRoleId() != 'user') { $userDbObject->getRolesObj()->removeElement($role1); } } /** * ��������� ����, ������� ��������� ��� ������� ������������ */ foreach ($userObject->getMemberof() as $k => $v) { foreach ($roles as $r) { if ($v == $r->getRoleId()) { $userObject->addRole($r); } } } /** * ��������� ���, Email */ $userDbObject->setDisplayName($userObject->getDisplayName()); $userDbObject->setEmail($userObject->getEmail()); $em->persist($userDbObject); $em->flush(); $userObject = $userDbObject; } else { $userObject = $userDbObject; } } // var_dump($userObject); // exit(); // Success! $e->setIdentity($userObject); // var_dump($e->getIdentity()); // exit(); $this->setSatisfied(true); $storage = $this->getStorage()->read(); $storage['identity'] = $e->getIdentity(); $session = new Container('ZfcUserLdap'); // $session->offsetSet('ldapObj', $this->getServiceManager()->get('ldap_interface')->findById($userObject->getId())); $session->offsetSet('ldapObj', $userObject); $this->getStorage()->write($storage); $e->setCode(AuthenticationResult::SUCCESS)->setMessages(array('Authentication successful.')); }
public function sendemailAction() { $data = $this->params()->fromQuery(); if (!isset($data['email']) || !$data['email']) { return 'Dữ liệu không đúng'; } if (!isset($data['activeKey']) || !$data['activeKey']) { return 'Dữ liệu không đúng'; } $validator = new \Zend\Validator\EmailAddress(); if ($validator->isValid($data['email'])) { $user = new User(); $user->setEmail($data['email']); $user->setActiveKey($data['activeKey']); /* @var $userMapper \User\Model\UserMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); if ($userMapper->checkExistsUserActive($user)) { $renderer = $this->getServiceLocator()->get('Zend\\View\\Renderer\\RendererInterface'); // Email content $viewContent = new \Zend\View\Model\ViewModel(array('activeLink' => Uri::buildAutoHttp('/user/user/activeaccount', ['u' => $user->getEmail(), 'c' => $user->getActiveKey()]))); $viewContent->setTemplate('email/activeFill'); // set in module.config.php $content = $renderer->render($viewContent); // Email layout $viewLayout = new \Zend\View\Model\ViewModel(array('content' => $content)); $viewLayout->setTemplate('email/layout'); // set in module.config.php $message = new Message(); $message->addTo($data['email']); $message->addFrom('*****@*****.**', $_SERVER['HTTP_HOST']); $message->setSubject('Welcome to ' . $_SERVER['HTTP_HOST']); $html = new \Zend\Mime\Part($renderer->render($viewLayout)); $html->type = 'text/html'; $body = new \Zend\Mime\Message(); $body->setParts(array($html)); $message->setBody($body); $message->setEncoding("UTF-8"); $smtp = new \Zend\Mail\Transport\Smtp(); $config = $this->getServiceLocator()->get('Config'); $options = new SmtpOptions($config['smtpOptions']); $smtp->setOptions($options); $smtp->send($message); $json = new JsonModel(); return $json->setVariable('Status', 'Đã xong'); } else { return 'Dữ liệu không phù hợp'; } } }
public function editAction() { $error = array(); //Tiêu đề $title = 'Template Email > Chỉnh sửa'; $this->headTitle($title)->setSeparator(" - ")->append("Hệ thống quản trị website"); $item = $this->getTable()->getItem($this->_arrParam, array('task' => 'get-item')); $emailMarketingAdminForm = $this->serviceLocator->get('FormElementManager')->get('emailMarketingAdminForm'); $emailMarketingAdminForm->setInputFilter(new \Admin\Form\EmailTemplateFilter(array('task' => 'edit', 'id' => $this->_arrParam['id']))); $emailMarketingAdminForm->bind($item); if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); $emailMarketingAdminForm->setData($data); //===========Kiểm tra xem nhập email============= $validator = new \Zend\Validator\EmailAddress(); $arrEmail = explode(",", $this->_arrPost['email']); $arrEmail = array_unique($arrEmail); //loại bỏ email trùng nhau //kiểm tra số lượng email if (count($arrEmail) > 3) { $error[] = 'Chỉ được nhập tối đa 3 email'; } foreach ($arrEmail as $key => $email) { //(thừa dấu phẩy ở đầu và cuối chuỗi) if ($email == '') { $error[] = "Giữa các email phải cách nhau bằng dấu phẩy"; break; } //Kiểm tra xem email có hợp lệ không if (!$validator->isValid($email)) { $error[] = 'Email không hợp lệ'; break; } } if ($emailMarketingAdminForm->isValid() && empty($error)) { //Chống tấn công XSS $purifier = new \HTMLPurifier_HTMLPurifier(); $data = array('id' => $purifier->purify($this->_arrPost['id']), 'name' => $purifier->purify($this->_viewHelper->cmsReplaceString($this->_arrPost['name'])), 'content' => $purifier->purify($this->_viewHelper->cmsReplaceString($this->_arrPost['content'])), 'email' => $purifier->purify($this->_viewHelper->cmsReplaceString($this->_arrPost['email']))); $this->getTable()->saveItem($data, array('task' => 'edit')); $this->flashMessenger()->addSuccessMessage('Dữ liệu đã được lưu thành công'); $this->redirect()->toUrl('/admin/emailmarketing/'); } else { //echo '<pre>'; //print_r($newsForm->getMessages()); //echo '</pre>'; } } return new ViewModel(array('title' => $title, 'arrParam' => $this->_arrParam, 'currentController' => $this->_currentController, 'myForm' => $emailMarketingAdminForm, 'item' => $item, 'error' => $error)); }