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
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