예제 #1
0
 public function requestPasswordReset()
 {
     $this->setResetHash($this->createHash());
     $this->save();
     $doc = Email::getByPath(Config::get('emails')->passwordReset);
     if (!$doc) {
         throw new \Exception('No password reset email defined');
     }
     /** @var \Zend_Controller_Request_Http $request */
     $request = \Zend_Controller_Front::getInstance()->getRequest();
     $email = new Mail();
     $email->addTo($this->getEmail());
     $email->setDocument($doc);
     $email->setParams(['host' => sprintf('%s://%s', $request->getScheme(), $request->getHttpHost()), 'member_id' => $this->getId()]);
     $email->send();
     return $this;
 }
예제 #2
0
파일: Register.php 프로젝트: Pegasuz/member
 /**
  * Callback for 'member.register.post' event.
  * Sending email with confirmation links.
  *
  * @param \Zend_EventManager_Event $event
  * @return \Member
  * @throws \Exception
  */
 public static function confirm(\Zend_EventManager_Event $event)
 {
     /** @var \Member $member */
     $member = $event->getTarget();
     $member->setConfirmHash($member->createHash());
     $member->save();
     $doc = Email::getByPath(Config::get('emails')->registerConfirm);
     if (!$doc) {
         throw new \Exception('No confirmation email defined');
     }
     /** @var \Zend_Controller_Request_Http $request */
     $request = \Zend_Controller_Front::getInstance()->getRequest();
     $email = new Mail();
     $email->addTo($member->getEmail());
     $email->setDocument($doc);
     $email->setParams(['host' => sprintf('%s://%s', $request->getScheme(), $request->getHttpHost()), 'member_id' => $member->getId()]);
     $email->send();
     return $member;
 }
 private function createEmailDocuments()
 {
     try {
         $email = Email::getByPath(self::DOCUMENT_EMAIL_CONFIRMATION_PATH);
         if (!is_object($email)) {
             $email = new Email();
             $email->setParent(Page::getByPath(dirname(self::DOCUMENT_EMAIL_CONFIRMATION_PATH)));
             $email->setKey(basename(self::DOCUMENT_EMAIL_CONFIRMATION_PATH));
             $email->setModule(self::CLASS_PARTICIPATION_NAME);
             $email->setController('Email');
             $email->setAction('confirmation');
             $email->setSubject(self::EMAIL_CONFIRMATION_SUBJECT_DEFAULT);
             $email->save();
         }
     } catch (\Exception $exception) {
         throw new \Exception('Unable to create email document page [' . Plugin::DOCUMENT_EMAIL_CONFIRMATION_PATH . ']: ' . $exception->getMessage());
     }
 }