Example #1
0
    def email_reset_pwd(self, email):
        """使用Email充值密码发送邮件功能
        """
        if not Func.is_email(email):
            return self.error('Email格式不正确')

        token = self.get_secure_cookie(settings.token_key)
        if token:
            return self.error('邮件已发送,30分钟后重试')

        member = Member.Q.filter(Member.email == email).first()
        if member is None:
            return self.error('账户没有注册')
        if member.status == 0:
            return self.error('账户被禁用')

        self.success()

        subject = '[%s]找回密码' % sys_config('site_name')
        token = Func.uuid32()
        action_url = sys_config(
            'site_url') + '/passport/forget.html?token=' + token

        localnow = Func.local_now() + datetime.timedelta(minutes=30)
        params = {
            'username': member.username,
            'expires': str(localnow),
            'action_url': action_url,
            'action_tips': '立即重置密码',
        }
        tmpl = 'common/email_content.html'
        content = self.render_string(tmpl, **params)
        # print('content', content)
        Func.sendmail({
            'to_addr': email,
            'subject': subject,
            'content': content
        })
        save = {
            'token': token,
            'account': email,
            'username': member.username,
            'action': 'email_reset_pwd',
        }
        expires = time.mktime(localnow.timetuple())
        self.set_secure_cookie(settings.token_key, str(save), expires=expires)
        return
Example #2
0
    def activate_email(self, email):
        """激活邮箱发送邮件功能
        """
        if not Func.is_email(email):
            return self.error('Email格式不正确')

        user_id = self.current_user.get('id')
        member = Member.Q.filter(Member.id == user_id).first()

        if member.email_activated:
            return self.error('已经激活了,请不要重复操作')

        token = self.get_secure_cookie(settings.token_key)
        if token:
            return self.error('邮件已发送,10分钟后重试')

        self.success()

        subject = '[%s]激活邮件' % sys_config('site_name')
        token = Func.uuid32()
        action_url = sys_config(
            'site_url') + '/member/activate.html?token=' + token

        localnow = Func.local_now() + datetime.timedelta(minutes=10)
        params = {
            'username': member.username,
            'expires': str(localnow),
            'action_url': action_url,
            'action_tips': '立即激活邮箱',
        }
        tmpl = 'common/email_content.html'
        content = self.render_string(tmpl, **params)
        # print('content', content)
        Func.sendmail({
            'to_addr': email,
            'subject': subject,
            'content': content
        })
        save = {
            'token': token,
            'account': email,
            'username': member.username,
            'action': 'email_reset_pwd',
        }
        expires = time.mktime(localnow.timetuple())
        self.set_secure_cookie(settings.token_key, str(save), expires=expires)
        return