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; }
/** * 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()); } }