A Markdown-based HTML email API.
Project description
Eärendil
Eärendil was a mariner
that tarried in Arvernien;
he built a boat of timber felled
in Nimbrethil to journey in;
Eärendil is a Markdown-based HTML email API written in Python. It allows users to draft an email message in Markdown and send it as a rich email viewable as both HTML and plaintext.
My primary motivation for creating this library was the lack of good options for sending rich emails with an alternative plaintext message for recipients who may be using a dated email service. I think that providing a faithful alternative message is important, and that simply using the Markdown used to generate the HTML message as the alternative is insufficient. Markdown, while fairly human-readable compared to most markup languages, still contains redundant or unhelpful syntax that is better expressed differently in plaintext. For example, escape characters should be removed, as should heading and emphasis symbols.
Features
- Renders Common Markdown messages into HTML.
- Renders a subset of Markdown into plaintext.
- Sends Markdown emails from either strings or files.
Planned Features
- Support for rendering a greater subset of Markdown as plaintext.
- Support for attachments.
Usage
To send Markdown-formatted emails using Eärendil, use either the send_markdown_email
or send_markdown_email_from_file
functions. Here is an example that uses each:
from pathlib import Path
from smtplib import SMTP
from earendil import send_markdown_email, send_markdown_email_from_file
sender_email = "sender@gmail.com"
password = "password"
recipient = "receiver@example.com"
subject = "Example Subject"
message_path = Path("/path/to/markdown.md")
with message_path.open("r") as file:
message = file.read()
with SMTP("smtp.gmail.com", 587) as server:
server.starttls()
server.login(sender_email, password)
# Here, you can either use:
send_markdown_email(server, sender_email, recipient, subject, message)
# or, alternatively:
send_markdown_email_from_file(server, sender_email, recipient, subject, message_path)
Installation
Requirements
Eärendil can run on any version of Python since 3.6.2
(inclusive). It also depends on the markdown
library.
From PyPI
The easiest way to install Eärendil is to simply run the command pip3 install earendil-mail
.
From Source
Alternatively, Eärendil can be installed from source by cloning this repository. To do so, run the following commands:
git clone https://github.com/ADSteele916/earendil
cd earendil
pip3 install .
Uninstallation
To uninstall, simply run the command pip3 uninstall earendil-mail
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
File details
Details for the file earendil_mail-0.2.0.tar.gz
.
File metadata
- Download URL: earendil_mail-0.2.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.11.9 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2890b6d5cabda0cbba13a06c9e7b646e49896f8acc3ea368945ecd0213adb95 |
|
MD5 | e157baf14855d8ca53e1b828ce9ff549 |
|
BLAKE2b-256 | 5415eb83b850196e8c37d4326eae0bec91efe66d65eef6f2240894a8daf8e8e8 |
File details
Details for the file earendil_mail-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: earendil_mail-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.11.9 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 881101a5240c95f4e34da5ddaca8fb02c28cd373af5963bef0a64519513d89fd |
|
MD5 | 1df017c7dcc8b9bcdb2260be148acc92 |
|
BLAKE2b-256 | ec3606fe3022709cc277892ad092a6a56e6227106216572adb7ec22e55bbe23d |