예제 #1
0
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
예제 #2
0
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
예제 #3
0
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)
예제 #4
0
파일: ldapass.py 프로젝트: sohonet/ldapass
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=[