Skip to main content

A mail sending library for keg applications

Project description

Keg-Mail is a basic wrapper around Flask-Mail which gives some added support for templates.

It is not finished by any means and in some ways provides little additional benefit over Flask-Mail.

Usage

$ pip install keg-mail

Initialize Keg-Mail in your application

import flask
import keg_mail
from keg.signals import app_ready
from keg import Keg

bp = flask.blueprint('main', __name__)
mail = keg_mail.KegMail()

class App(Keg):
  use_blueprints = [bp]

Initialize the extension with the application

@app_ready.connect
def init_extensions(app):
    """Init custom extensions used by this application"""

    mail.init_app(app)

Define email content

import keg_mail

hello_world_content = keg_mail.EmailContent(
  text='Hello {name}!'
  html='<h1>Hello {name}!</h1>'
)

Send the email

from app import mail
import app.emails as emails
import keg_mail

bp.route('/')
def index():
    mail.send_email(
        'you@something.com',
        keg_mail.Email(
          subject="Hello {name}!",
          content=emails.hello_world_content,
        ).format(name='You")
    )

Test the email

from app import mail

def test_send_mail():
    with mail.record_messages() as outbox:
        resp = app.test_client.get('/')
        assert len(outbox) == 1
        assert outbox[0].subject == "Hello You!"
        assert outbox[0].body == "Hello You!"

Mailgun-specific options

Mailgun supports various options such as tagging, user-defined variables, etc. These can be added via a mailgun_opts dictionary that can be passed to the app’s mail engine’s send method directly:

flask.current_app.mail.send(
    msg,
    mailgun_opts={
        'v:user_name': 'John Doe',
        'v:user_id': 100,
    },
)

Changelog

0.2.4 released 2022-11-10

  • allow additional mailgun API options to be sent through send (d35e23d)

  • update CI setup and add python 3.10 (5552cd2)

0.2.3 released 2020-07-22

  • Handle timestamps parsed as decimals in Mailgun event JSON (6a03528)

0.2.2 released 2020-07-22

  • Fix bug in LogStatusWebhook view mixin (8a3ffde)

0.2.1 released 2020-07-22

  • Add support for Mailgun REST API and message status tracking (b3b4428)

0.2.0 released 2020-04-14

0.1.0 - 2017-03-23

  • Initial Release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Keg-Mail-0.2.4.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

Keg_Mail-0.2.4-py2.py3-none-any.whl (20.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file Keg-Mail-0.2.4.tar.gz.

File metadata

  • Download URL: Keg-Mail-0.2.4.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.15

File hashes

Hashes for Keg-Mail-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ee124497e4cea23e8e6c9e2e1bef0d6868d1da96bbc82d5866ea175146212ad1
MD5 a0bcd4049c58e8e3154102872a74ee96
BLAKE2b-256 c753513657c62a830337dc2ebd9560112abad81a0da93b43e48f987014d3328e

See more details on using hashes here.

Provenance

File details

Details for the file Keg_Mail-0.2.4-py2.py3-none-any.whl.

File metadata

  • Download URL: Keg_Mail-0.2.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.15

File hashes

Hashes for Keg_Mail-0.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bf88d7f33068197dd5af1485c66d5d03f663fd115073283b32529120ca4d53e6
MD5 cf6596996790b53e4624d49948259fda
BLAKE2b-256 1520be3d9a99202853cbb1c8f52dcc2ce0d228542b82418c9b67caf9e8fa51ce

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page