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.
![E-mail rendering for the user (HTML part)](https://www.yaal.fr/media/softwares/markdownmail-screenshot.png)
Install
-------
`$ pip install markdownmail`
Basic Usage
-----------
```python
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:
```python
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
)
```
`cc_addr` and `bcc_addr` are optional.
The `from_addr`, `to_addr`, `cc_addr` and `bcc_addr` parameters are the same as
[Enveloppe](http://pypi.org/pypi/Envelopes/) library.
Change SMTP port:
```python
email.send("example.org", port=3325)
```
Change SMTP login and password:
```python
email.send("example.org", login="user", password="password")
```
Use TLS:
```python
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`:
```python
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`.
```python
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:
```python
class MyServer(markdownmail.NullServer):
def check(self, email):
assert u'bob@example.org' == email.to_addr[0]
email.send(MyServer())
```
Useful links
------------
[Envelopes library](https://pypi.org/pypi/Envelopes/0.4)
(MardownMail is a wrapper around Envelopes library.)
[Markdown syntax](https://daringfireball.net/projects/markdown/syntax)
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/yaal/markdownmail",
"name": "markdownmail",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "mail markdown yaal",
"author": "Yaal Team",
"author_email": "contact@yaal.fr",
"download_url": "https://files.pythonhosted.org/packages/17/96/4e3bf15239b35415c39f74cfc40bfca564c740a528eca5bfb5dab89a7a88/markdownmail-0.11.0.tar.gz",
"platform": null,
"description": "MarkdownMail\n============\n\nPurpose\n-------\n\nSend e-mails with generated html content.\n\nThe content has to be written in Markdown syntax. The text part of the e-mail\nwill be filled verbatim; the html part will be a converted HTML from the\nMarkdown content.\n\n![E-mail rendering for the user (HTML part)](https://www.yaal.fr/media/softwares/markdownmail-screenshot.png)\n\nInstall\n-------\n\n`$ pip install markdownmail`\n\n\nBasic Usage\n-----------\n\n```python\nimport markdownmail\n\nCONTENT = u\"\"\"\nSPAMS AND EGGS\n==============\n\nThis is a demo with a list:\n\n1. Spam\n2. Second spam\n3. ...and eggs\n\"\"\"\n\nemail = markdownmail.MarkdownMail(\n from_addr=u'alice@example.org',\n to_addr=u'bob@example.org',\n subject=u'MarkdownMail demo',\n content=CONTENT\n)\n\nemail.send('localhost')\n```\n\nContent must be unicode.\n\n\nMore infos\n----------\n\nAdditional informations are addable:\n\n```python\nemail = markdownmail.MarkdownMail(\n from_addr=(u'alice@example.org', u'Alice'),\n to_addr=(u'bob@example.org', u'Bob'),\n subject=u'MarkdownMail demo',\n content=CONTENT\n)\n```\n\n`cc_addr` and `bcc_addr` are optional.\nThe `from_addr`, `to_addr`, `cc_addr` and `bcc_addr` parameters are the same as\n[Enveloppe](http://pypi.org/pypi/Envelopes/) library.\n\n\nChange SMTP port:\n\n```python\nemail.send(\"example.org\", port=3325)\n```\n\nChange SMTP login and password:\n\n```python\nemail.send(\"example.org\", login=\"user\", password=\"password\")\n```\n\nUse TLS:\n\n```python\nemail.send(\"example.org\", tls=True)\n```\n\nStyle\n-----\n\nA default CSS is automatically added to the e-mail. It includes a font sans serif and minor improvements.\n\nTo override the default CSS, pass a string including the style to the `css` optional parameter of `MardownMail`:\n\n```python\nimport markdownmail\n\nemail = markdownmail.MarkdownMail(\n from_addr=u'alice@example.org',\n to_addr=u'bob@example.org',\n subject=u'MarkdownMail demo',\n content=\"CONTENT\",\n css=\"font-family:monospace; color:green;\"\n)\n```\n\nRun tests\n---------\n\nTox is automatically installed in virtualenvs before executing the tests.\nExecute them with:\n\n`$ python setup.py test`\n\n\nDisable sending e-mails in your tests\n-------------------------------------\n\nThe e-mail is not send if the parameter passed to `send()` method is an instance of `NullServer`.\n\n```python\nemail = markdownmail.MarkdownMail(\n #params\n)\n\nemail.send(markdownmail.NullServer())\n```\n\nAssert about e-mails in your tests\n----------------------------------\n\nSubclassing `NullServer` allows to provide a custom behaviour in the `check()`\nmethod:\n\n```python\nclass MyServer(markdownmail.NullServer):\n def check(self, email):\n assert u'bob@example.org' == email.to_addr[0]\n\nemail.send(MyServer())\n```\n\n\nUseful links\n------------\n\n[Envelopes library](https://pypi.org/pypi/Envelopes/0.4)\n(MardownMail is a wrapper around Envelopes library.)\n\n[Markdown syntax](https://daringfireball.net/projects/markdown/syntax)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "E-mail with text and html content provided with markdown",
"version": "0.11.0",
"project_urls": {
"Homepage": "https://gitlab.com/yaal/markdownmail"
},
"split_keywords": [
"mail",
"markdown",
"yaal"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3a23b2432adbde84ba6f5facbf5b059b81de752d584b9f6909949a8c3e3f4301",
"md5": "93f3c6e9932a58b2bf15f52612de0e83",
"sha256": "7735145ab54d9692ba5b0de8d67dd20f044d3689c6f166d7cace2a2427742e4c"
},
"downloads": -1,
"filename": "markdownmail-0.11.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "93f3c6e9932a58b2bf15f52612de0e83",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8671,
"upload_time": "2023-09-12T07:26:40",
"upload_time_iso_8601": "2023-09-12T07:26:40.467509Z",
"url": "https://files.pythonhosted.org/packages/3a/23/b2432adbde84ba6f5facbf5b059b81de752d584b9f6909949a8c3e3f4301/markdownmail-0.11.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "17964e3bf15239b35415c39f74cfc40bfca564c740a528eca5bfb5dab89a7a88",
"md5": "b19260415d97b0258f9ff768d30712a0",
"sha256": "ee3e9335647581eb7152b818d387baa499a86288870ad3f9097bb575bb794061"
},
"downloads": -1,
"filename": "markdownmail-0.11.0.tar.gz",
"has_sig": false,
"md5_digest": "b19260415d97b0258f9ff768d30712a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9373,
"upload_time": "2023-09-12T07:26:41",
"upload_time_iso_8601": "2023-09-12T07:26:41.889035Z",
"url": "https://files.pythonhosted.org/packages/17/96/4e3bf15239b35415c39f74cfc40bfca564c740a528eca5bfb5dab89a7a88/markdownmail-0.11.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-12 07:26:41",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "yaal",
"gitlab_project": "markdownmail",
"lcname": "markdownmail"
}