Ejemplo n.º 1
0
 /**
  * send
  *
  * @param ResetPassword $resetPassword
  * @param User $user
  * @param array $mailConfig
  *
  * @return mixed
  */
 public function sendRestPasswordEmail(ResetPassword $resetPassword, User $user, $mailConfig)
 {
     $toEmail = $user->getEmail();
     $fromEmail = $mailConfig['fromEmail'];
     $fromName = $mailConfig['fromName'];
     $subject = $mailConfig['subject'];
     $bodyTemplate = $mailConfig['body'];
     //Ignore blank emails
     if (!trim($toEmail)) {
         return;
     }
     $vars = ['name' => '', 'userId' => $user->getId(), 'url' => 'https://' . $_SERVER['HTTP_HOST'] . '/reset-password?fromPasswordResetEmail=1&id=' . $resetPassword->getResetId() . '&key=' . $resetPassword->getHashKey()];
     foreach ($vars as $name => $value) {
         $bodyTemplate = str_replace('__' . $name . '__', $value, $bodyTemplate);
         // Handle BC
         $bodyTemplate = str_replace('{' . $name . '}', $value, $bodyTemplate);
     }
     try {
         $html = new MimePart($bodyTemplate);
         $html->type = "text/html";
         $body = new MimeMessage();
         $body->setParts([$html]);
         $message = new Message();
         $message->setBody($body)->setFrom($fromEmail, $fromName)->setSubject($subject);
         foreach (explode(',', $toEmail) as $email) {
             $message->addTo(trim($email));
         }
         $transport = new \Zend\Mail\Transport\Sendmail();
         $transport->send($message);
     } catch (InvalidArgumentException $e) {
         // nothing
     }
 }
 /**
  * Handle Post for Plugin
  *
  * @param ResetPasswordForm $form
  * @param                   $instanceConfig
  *
  * @return null|string
  */
 protected function handlePost(ResetPasswordForm $form, $instanceConfig)
 {
     $resetPw = new ResetPassword();
     $form->setInputFilter($resetPw->getInputFilter());
     $form->setData($this->getRequest()->getPost());
     if (!$form->isValid()) {
         return;
     }
     $formData = $form->getData();
     $userId = $formData['userId'];
     $user = $this->rcmUserManager->buildNewUser();
     $user->setUsername($userId);
     $result = $this->rcmUserManager->readUser($user);
     if (!$result->isSuccess()) {
         return;
     }
     $user = $result->getUser();
     if (!$user->getEmail()) {
         return;
     }
     $resetPw->setUserId($user->getId());
     $this->entityMgr->persist($resetPw);
     $this->entityMgr->flush();
     $this->mailer->sendRestPasswordEmail($resetPw, $user, $instanceConfig['prospectEmail']);
     return;
 }
 /**
  * @param $resetPw
  * @param $userId
  * @param $userEmail
  * @param $instanceConfig
  */
 protected function sendEmail(ResetPassword $resetPw, $userId, $userEmail, $instanceConfig)
 {
     try {
         $this->templateMailer->sendEmailTemplateFromConfigArray($userEmail, $instanceConfig['prospectEmail'], ['name' => '', 'userId' => $userId, 'url' => 'https://' . $_SERVER['HTTP_HOST'] . '/reset-password?id=' . $resetPw->getResetId() . '&key=' . $resetPw->getHashKey()]);
     } catch (InvalidArgumentException $e) {
         // Do nothing
     }
 }