def reset_email(): if request.method == "POST": form = EmailForm(request.form) if form.validate(): ul = serv.login(g.user['email'], form.password.data) if ul: #TODO:发送确认邮件 try: uri = serv.send_lock_request("user.confirm_email", ul.id) up = g.db.query(UserProfile).filter( UserProfile.user_id == ul.id).one() up.email = form.email.data g.db.flush() g.db.commit() success = u"确认邮箱的邮件已经发出,请登录邮箱点击确认链接,然后才能使用新邮箱登陆" msg = Message(u"登陆邮箱变更确认邮件", sender="*****@*****.**", recipients=["*****@*****.**"]) msg.html = "点击下面链接确认登陆邮件变更,点击后用新邮箱登陆爱普云平台<br/><a href=\"http://%s%s\">%s</a>" % ( settings.SERVER, uri, uri) g.mail.send(msg) except Exception, e: g.db.rollback() log.error(print_debug(e)) errors = [u"未知异常"] else: errors = [u"登陆密码输入不正确"] else: errors = [v[0] for k, v in form.errors.iteritems()]
def send_message(): form = EmailForm(request.form) if form.validate(): app.config.from_object('email_conf.Config') mail = Mail(app) msg = Message(sender=current_app.config['MAIL_USERNAME'], recipients=[current_app.config['MAIL_USERNAME']], subject=f'message from {form.name.data} through website') mail.body = form.message.data msg.html = f'{form.email_field.data}<br>{mail.body}' mail.send(msg) flash('Message sent', 'success') return render_template('home.html', form=form, mail=current_app.config['MAIL_USERNAME'], nnet_library=nnet_library, library_link=library_links[nnet_library], name=model_name, link=model_links[model_name]) flash('There was an error sending the message', 'error') return render_template('home.html', form=form, mail=current_app.config['MAIL_USERNAME'], nnet_library=nnet_library, library_link=library_links[nnet_library], name=model_name, link=model_links[model_name])
def reset(): form = EmailForm() if request.method == 'POST': if form.validate() == False: return render_template('reset.html', form=form) else: user = User.query.filter_by( email=form.email.data.lower()).first_or_404() if user: subject = "Password reset requested" token = security.ts.dumps(user.email, salt='recover-key') recover_url = url_for('reset_with_token', token=token, _external=True) html = "Click <a href={}> here </a> to change your password".format( recover_url) security.send_email(subject, user.firstname, user.email, html) signup_form = SignupForm() signin_form = SigninForm() message = "Reset email sent to {}".format(user.email) return render_template('home.html', signup_form=signup_form, signin_form=signin_form, message=message) else: return "That user does not exist" elif request.method == 'GET': return render_template('reset.html', form=form)
def reset_email(): if request.method == "POST": form = EmailForm(request.form) if form.validate(): ul = serv.login(g.user['email'],form.password.data) if ul: #TODO:发送确认邮件 try: uri = serv.send_lock_request("user.confirm_email", ul.id) up = g.db.query(UserProfile).filter(UserProfile.user_id==ul.id).one() up.email = form.email.data g.db.flush() g.db.commit() success = u"确认邮箱的邮件已经发出,请登录邮箱点击确认链接,然后才能使用新邮箱登陆" msg = Message(u"登陆邮箱变更确认邮件", sender="*****@*****.**", recipients=["*****@*****.**"]) msg.html = "点击下面链接确认登陆邮件变更,点击后用新邮箱登陆爱普云平台<br/><a href=\"http://%s%s\">%s</a>"%(settings.SERVER, uri, uri) g.mail.send(msg) except Exception, e: g.db.rollback() log.error(print_debug(e)) errors = [u"未知异常"] else: errors = [u"登陆密码输入不正确"] else: errors = [v[0] for k, v in form.errors.iteritems()]
def save_email(): form = EmailForm(request.form) if form.validate(): db = get_db() db.execute('''INSERT INTO emails (email, registered) VALUES (?, ?)''', (request.form.get('email'), datetime.utcnow().isoformat())) db.commit() return render_template('email.html', email=Markup.escape(form.email.data)) else: return redirect("/")
def forgot_password(): statsd.increment('api_calls.forgot_password') if request.method == 'POST': logger.info(request.form) form = EmailForm(request.form) if not form.validate(): msg = { 'success': False, 'msg': form.errors, } return jsonify(msg) if secret_key != base64.b64decode(form.sig.data): msg = { 'success': False, 'msg': 'invalid signature'} return jsonify(msg) u = session.query(Person).\ filter(Person.email == form.email.data).\ first() if not u: msg = { 'success': False, 'msg': 'Email not registered!'} return jsonify(msg) m = Message( "Reset Password", recipients=[form.email.data]) content = ( 'Click <a href="http://' + request.headers['Host'] + '/forgot_password?' + 'key=' + urllib.quote(u.pw_hash) + '&email=' + urllib.quote(form.email.data) + '">HERE</a>' + ' to reset your password') m.html = content mail.send(m) msg = { 'success': True, 'msg': 'Mail Sent!'} return jsonify(msg) logger.info(request.args) key = urllib.unquote(request.args['key']) email = urllib.unquote(request.args['email']) u = session.query(Person).\ filter(Person.email == email).first() if u and key == u.pw_hash: response = redirect(url_for('reset_page')) response.set_cookie('email', value=email) response.set_cookie('key', value=urllib.quote(key)) return response return 'Invalid key!'
def save_email(): form = EmailForm(request.form) if form.validate(): db = get_db() db.execute( '''INSERT INTO emails (email, registered) VALUES (?, ?)''', (request.form.get('email'), datetime.utcnow().isoformat())) db.commit() return render_template('email.html', email=Markup.escape(form.email.data)) else: return redirect("/")
def send_message(): form = EmailForm(request.form) if form.validate(): app.config.from_object('email_conf.Config') mail = Mail(app) msg = Message(sender=current_app.config['MAIL_USERNAME'], recipients=[current_app.config['MAIL_USERNAME']], subject=f'message from {form.name.data} through website') mail.body = form.message.data msg.html = f'{form.email.data}<br>{mail.body}' mail.send(msg) return jsonify({'status': 'success'}) print('error while sending email') return jsonify({'status': 'error'})
def new_email(keyurl): """ """ key = ndb.Key(urlsafe=keyurl) form = EmailForm(request.form) if request.method == 'POST' and form.validate(): email = EmailModel( enterprise = key, email = form.email.data ) try: email.put() return redirect(url_for('admin.edit_enterprise', keyurl=keyurl)) except CapabilityDisabledError: flash('save error', 'error') return render_template('admin/new_email.html', form=form, keyurl=keyurl)
def edit_email(keyurl): email = ndb.Key(urlsafe=keyurl).get() if not email: flash('no such email', 'error') return redirect(url_for('admin.enterprises')) form = EmailForm(request.form) if request.method == 'GET': form.email.data = email.email if request.method == 'POST' and form.validate(): email.email = form.email.data try: email.put() return redirect(url_for('admin.edit_enterprise', keyurl=email.enterprise)) except CapabilityDisabledError: flash('save error', 'error') return render_template('admin/edit_email.html', form=form, keyurl=keyurl)