from flask_mail import Message from flask_mail_sendgrid import MailSendGrid from .. import create_app from flask import render_template from threading import Thread # from flask import current_app import os app = create_app('default') mail = MailSendGrid(app) def send_async_email(app, msg): with app.app_context(): mail.send(msg) def send_mail(to, subject, template, **kwargs): msg = Message(app.config.get('FLASKY_MAIL_SUBJECT_PREFIX') + subject, sender=app.config.get('FLASKY_MAIL_SENDER'), recipients=[to]) msg.html = render_template('{}.html'.format(template), **kwargs) msg.body = render_template('{}.txt'.format(template), **kwargs) # mail.send(msg) thr = Thread(target=send_async_email, args=[app, msg]) thr.start() return thr
from flask_login import LoginManager, current_user from flask_mail import Mail from flask_mail_sendgrid import MailSendGrid from flask_migrate import Migrate from flask_sqlalchemy import SQLAlchemy from flask_wtf import CSRFProtect from app import settings db = SQLAlchemy() migrate = Migrate() mail = Mail() csrf_protect = CSRFProtect() admin = Admin(name="Maranatha Namibia", template_mode="bootstrap3") login_manager = LoginManager() bcrypt = Bcrypt() mail_send_grid = MailSendGrid() celery = Celery(__name__, broker=settings.CELERY_BROKER) def create_app(): app = Flask(__name__) # Get setting from the setting file app.config.from_object('app.settings') app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True # Set up the database db.init_app(app) # Set up flask migrate
from flask import Flask from flask_bootstrap import Bootstrap from flask_mail_sendgrid import MailSendGrid from flask_moment import Moment from flask_sqlalchemy import SQLAlchemy from flask_login import LoginManager from flask_pagedown import PageDown from config import config bootstrap = Bootstrap() mail = MailSendGrid() moment = Moment() db = SQLAlchemy() pagedown = PageDown() login_manager = LoginManager() login_manager.login_view = 'auth.login' def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) db.init_app(app) login_manager.init_app(app) pagedown.init_app(app)
from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, Email, EqualTo, Length app = Flask('__name__') app.config['SECRET_KEY'] = os.environ['LDAPASS_SECRET'] app.config['MAIL_SENDGRID_API_KEY'] = os.environ['LDAPASS_MAILKEY'] conf = RawConfigParser() conf.read(os.environ['LDAPASS_CONFIG']) DEBUG = False MIN_PASSWORD_LENGTH = 15 app.config['RECAPTCHA_PUBLIC_KEY'] = os.environ['RECAPTCHA_PUBLIC_KEY'] app.config['RECAPTCHA_PRIVATE_KEY'] = os.environ['RECAPTCHA_PRIVATE_KEY'] flaskmail = MailSendGrid(app) class EmailForm(FlaskForm): mail = StringField( 'Email address', validators=[DataRequired(), Email()], render_kw={"placeholder": "Your LDAP user email address"}) recaptcha = RecaptchaField() submit = SubmitField("Submit", render_kw={"class": "btn btn-primary"}) class PasswordForm(FlaskForm): passwd = PasswordField( 'New password', validators=[