E-mail with text and html content provided with markdown
Project description
MarkdownMail
Purpose
Send e-mails with generated html content.
The content has to be written in Markdown syntax. The text part of the e-mail will be filled verbatim; the html part will be a converted HTML from the Markdown content.
Install
$ pip install markdownmail
Basic Usage
import markdownmail
CONTENT = u"""
SPAMS AND EGGS
==============
This is a demo with a list:
1. Spam
2. Second spam
3. ...and eggs
"""
email = markdownmail.MarkdownMail(
from_addr=u'alice@example.org',
to_addr=u'bob@example.org',
subject=u'MarkdownMail demo',
content=CONTENT
)
email.send('localhost')
Content must be unicode.
More infos
Additional informations are addable:
email = markdownmail.MarkdownMail(
from_addr=(u'alice@example.org', u'Alice'),
to_addr=(u'bob@example.org', u'Bob'),
subject=u'MarkdownMail demo',
content=CONTENT
)
The from_addr
and to_addr
parameters are the same as Enveloppe library.
Change SMTP port:
email.send("example.org", port=3325)
Change SMTP login and password:
email.send("example.org", login="user", password="password")
Use TLS:
email.send("example.org", tls=True)
Style
A default CSS is automatically added to the e-mail. It includes a font sans serif and minor improvements.
To override the default CSS, pass a string including the style to the css
optional parameter of MardownMail
:
import markdownmail
email = markdownmail.MarkdownMail(
from_addr=u'alice@example.org',
to_addr=u'bob@example.org',
subject=u'MarkdownMail demo',
content="CONTENT",
css="font-family:monospace; color:green;"
)
Run tests
Tox is automatically installed in virtualenvs before executing the tests. Execute them with:
$ python setup.py test
Disable sending e-mails in your tests
The e-mail is not send if the parameter passed to send()
method is an instance of NullServer
.
email = markdownmail.MarkdownMail(
#params
)
email.send(markdownmail.NullServer())
Assert about e-mails in your tests
Subclassing NullServer
allows to provide a custom behaviour in the check()
method:
class MyServer(markdownmail.NullServer):
def check(self, email):
assert u'bob@example.org' == email.to_addr[0]
email.send(MyServer())
Useful links
Envelopes library (MardownMail is a wrapper around Envelopes library.)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for markdownmail-0.10.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf984c5d34ac4169bfcb42a43d06ff491b108ca068c3c0899dfa75c6bdd86092 |
|
MD5 | d62162bf2b13f14d6499cea428aad96d |
|
BLAKE2b-256 | 93276ac19161cbb3c4b85d8c0a3a17f41304e8ff1fa1300c4aebae66582cb698 |