Simple HTML e-mail generator
Project description
EMailBuilder
Simple HTML e-mail template builder python library. Allows for embedded images and matplotlib charts.
Table of Contents
Installation
You can install the latest release with pip:
pip install emailbuilder
Or build and install the development version yourself:
git clone https://github.com/coheleth/emailbuilder &&\
pip install ./emailbuilder
Usage
Import EmailBuilder:
import emailbuilder as eb
Create an emailbuilder.EMail
object and append elements to it:
# Create eb.EMail object
# (see the "EMail class" section for more details)
email = eb.EMail(
"EMail Subject",
"sender@example.com",
"receiver@example.com"
)
# Append components to the eb.EMail object
# (see the "Components" section for more details)
email.append(eb.Header("Hello World!"))
email.append(eb.Paragraph("Lorem ipsum dolor sit amet consectetur"))
You can also append matplotlib figures:
plt.figure()
plt.plot([1, 2])
plt.title("Example")
email.append(eb.Figure(plt.gcf(), "example-figure"))
Then, you can send the e-mail via your preferred method. For instance:
s = smtplib.SMTP(...)
...
s.send_message(email.message())
s.quit()
The EMail Class/Object
This object is used for setting the information relating to the e-mail, and provides methods to render the e-mail contents.
Attributes
Subject
The e-mail's subject, as a string
Sender
The sender's e-mail, as a string
Receiver, Copy and Blind Copy
The receiver(s)'s e-mail(s), as either a string or a list
Style
A dictionary containing the basic style rules for the e-mail. (More information concerning styling to be added)
Methods
email.append()
email.append(component)
Appends a component to the end of the e-mail
email.attach()
with open("file.png", "rb") as f:
email.attach(
item = f.read(),
type = "image",
extension = "png",
cid = "my_image",
mime = MIMEImage(f.read()) # Optional
)
Adds an attachment to the e-mail.
email.html()
print(email.html())
Returns the e-mail as HTML.
email.plain() (W.I.P.)
print(email.plain())
Returns the e-mail as plain text.
email.message()
s.send_message(email.message())
Returns the e-mail as a EmailMessage
object.
Components
Below are the included components in the emailbuilder library.
Basic Elements
Header
eb.Header(
content: str,
style: dict = {}
)
An <h1>
element, with the text from the content
parameter.
Paragraph
eb.Paragraph(
content: str,
style: dict = {}
)
A single paragraph, with the text from the content
parameter.
Embedabbles
Image
eb.Image(
src: str,
alt: str = "",
cid: str = <file name>,
style: dict = {}
)
An embedded image, loaded from the src
path. Alternative text, used for text-only e-mails is passed through the alt
parameter.
ImageRaw
eb.ImageRaw(
image: bytes,
extension: str,
alt: str = "",
cid: str = <hashed bytes>,
style: dict = {}
)
An embedded image, loaded as bytes from the image
parameter. An image format must be provided through the extension
parameter.
Figure
eb.Figure(
figure: matplotlib figure,
alt: str,
style: dict = {},
kwargs: dict = {}
)
An embedded MatPlotLib figure. Custom arguments for the savefig
function can be passed through the kwargs
parameter.
Containers
Container
eb.Container(
style: dict = {}
)
A <div>
element. Items can be appended with the append(item)
method, just like with the EMail
object.
To-Do
- Write basic usage guide
- Add win32com.client outlook support
- Improve classes and functions documentation
- Add CC and BCC
- Add table component
- Document
style
argument - Improve plain text function
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
Built Distribution
File details
Details for the file emailbuilder-0.1.4.tar.gz
.
File metadata
- Download URL: emailbuilder-0.1.4.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 073270c8159e9cb01b19510e22f36d2f12a0aa2da99d0da688406c8f8c9aebb2 |
|
MD5 | 8993ef3a092f2107e7cb9f3a9d11bbde |
|
BLAKE2b-256 | b01980e4b01ec78a43c5c78d1712a691d61e39102dcf2a44d94aab52abd2c202 |
File details
Details for the file emailbuilder-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: emailbuilder-0.1.4-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31bdf83f00e111ff07558023b4b06aa2e193ce3c8ce1e8b45263c66350248d78 |
|
MD5 | 7bafa2342520b6929381c4763cb2caae |
|
BLAKE2b-256 | 514e4f9dcbb83c641b4b8a89451554d3d2379cc24a7dd4449e76597574cb3d40 |