Python flask.ext.mail.Message() Examples

The following are 10 code examples of flask.ext.mail.Message(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module flask.ext.mail , or try the search function .
Example #1
Source File: email.py    From Flask-Large-Application-Example with MIT License 5 votes vote down vote up
def send_exception(subject):
    """Send Python exception tracebacks via email to the ADMINS list.

    Use the same HTML styling as Flask tracebacks in debug web servers.

    This function must be called while the exception is happening. It picks up the raised exception with sys.exc_info().

    Positional arguments:
    subject -- subject line of the email (to be prepended by 'Application Error: ').
    """
    # Generate and modify html.
    tb = tbtools.get_current_traceback()  # Get exception information.
    with _override_html():
        html = tb.render_full().encode('utf-8', 'replace')
    html = html.replace('<blockquote>', '<blockquote style="margin: 1em 0 0; padding: 0;">')
    subject = 'Application Error: {}'.format(subject)

    # Apply throttle.
    md5 = hashlib.md5('{}{}'.format(subject, html)).hexdigest()
    seconds = int(current_app.config['MAIL_EXCEPTION_THROTTLE'])
    lock = redis.lock(EMAIL_THROTTLE.format(md5=md5), timeout=seconds)
    have_lock = lock.acquire(blocking=False)
    if not have_lock:
        LOG.debug('Suppressing email: {}'.format(subject))
        return

    # Send email.
    msg = Message(subject=subject, recipients=current_app.config['ADMINS'], html=html)
    mail.send(msg) 
Example #2
Source File: email.py    From Flask-Large-Application-Example with MIT License 5 votes vote down vote up
def send_email(subject, body=None, html=None, recipients=None, throttle=None):
    """Send an email. Optionally throttle the amount an identical email goes out.

    If the throttle argument is set, an md5 checksum derived from the subject, body, html, and recipients is stored in
    Redis with a lock timeout. On the first email sent, the email goes out like normal. But when other emails with the
    same subject, body, html, and recipients is supposed to go out, and the lock hasn't expired yet, the email will be
    dropped and never sent.

    Positional arguments:
    subject -- the subject line of the email.

    Keyword arguments.
    body -- the body of the email (no HTML).
    html -- the body of the email, can be HTML (overrides body).
    recipients -- list or set (not string) of email addresses to send the email to. Defaults to the ADMINS list in the
        Flask config.
    throttle -- time in seconds or datetime.timedelta object between sending identical emails.
    """
    recipients = recipients or current_app.config['ADMINS']
    if throttle is not None:
        md5 = hashlib.md5('{}{}{}{}'.format(subject, body, html, recipients)).hexdigest()
        seconds = throttle.total_seconds() if hasattr(throttle, 'total_seconds') else throttle
        lock = redis.lock(EMAIL_THROTTLE.format(md5=md5), timeout=int(seconds))
        have_lock = lock.acquire(blocking=False)
        if not have_lock:
            LOG.debug('Suppressing email: {}'.format(subject))
            return
    msg = Message(subject=subject, recipients=recipients, body=body, html=html)
    mail.send(msg) 
Example #3
Source File: utils.py    From cve-portal with GNU Affero General Public License v3.0 5 votes vote down vote up
def send_email(to, subject, template, **kwargs):
    msg = Message(subject, recipients=[to], sender=cfg.get('SMTP', 'sender'))
    msg.body = render_template(template + '.txt', **kwargs)
    msg.html = render_template(template + '.html', **kwargs)
    return mail.send(msg) 
Example #4
Source File: views.py    From online-ratings with MIT License 5 votes vote down vote up
def send_verify_email(user, aga_id):
    aga_info = get_aga_info(aga_id)
    if aga_info is None:
        return False
    email_address = aga_info['email']
    email_subject = "Confirm AGA ID for Online Ratings"
    email_body = render_template('verify/verification_email.html', 
        user=user, aga_id=aga_id, verify_link=get_verify_link(user, aga_id))
    email = Message(
        recipients=[email_address],
        subject=email_subject,
        html=email_body,
    )
    current_app.extensions.get('mail').send(email)
    return True 
Example #5
Source File: mailer.py    From spendb with GNU Affero General Public License v3.0 5 votes vote down vote up
def mail_account(recipient, subject, body, headers=None):
    site_title = current_app.config.get('SITE_TITLE')
    if (recipient.email is not None) and len(recipient.email):
        msg = Message(subject, recipients=[recipient.email])
        msg.body = add_msg_niceties(recipient.display_name, body, site_title)
        mail.send(msg) 
Example #6
Source File: tasks.py    From edx_data_research with MIT License 5 votes vote down vote up
def send_email(to, subject, template, **kwargs):
    msg = Message(subject, sender=MAIL_SENDER, recipients=[to])
    msg.body = render_template(template + '.txt', **kwargs)
    msg.html = render_template(template + '.html', **kwargs)
    thr = Thread(target=send_async_email, args=[app, msg])
    thr.start()
    return thr 
Example #7
Source File: ctf.py    From CTF with MIT License 5 votes vote down vote up
def send_email(to, subject, template):
    msg = Message(
        subject,
        recipients=[to],
        html=template,
        sender=app.config['MAIL_DEFAULT_SENDER']
    )
    mail.send(msg)

# Create customized model view class 
Example #8
Source File: email.py    From flask-boilerplate with MIT License 5 votes vote down vote up
def send(recipient, subject, body):
    '''
    Send a mail to a recipient. The body is usually a rendered HTML template.
    The sender's credentials has been configured in the config.py file.
    '''
    sender = app.config['ADMINS'][0]
    message = Message(subject, sender=sender, recipients=[recipient])
    message.html = body
    # Create a new thread
    thr = Thread(target=send_async, args=[app, message])
    thr.start() 
Example #9
Source File: email.py    From flasky-with-celery with MIT License 5 votes vote down vote up
def send_email(to, subject, template, **kwargs):
    app = current_app._get_current_object()
    msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + ' ' + subject,
                  sender=app.config['FLASKY_MAIL_SENDER'], recipients=[to])
    msg.body = render_template(template + '.txt', **kwargs)
    msg.html = render_template(template + '.html', **kwargs)
    send_async_email.delay(msg) 
Example #10
Source File: email.py    From flask-registration with MIT License 5 votes vote down vote up
def send_email(to, subject, template):
    msg = Message(
        subject,
        recipients=[to],
        html=template,
        sender=app.config['MAIL_DEFAULT_SENDER']
    )
    mail.send(msg)