Python package for sending rich e-mails.
Project description
README
Code Quality
Description
concrete-mailer
is a python package for sending rich e-mails.
- It automatically embeds the linked image in email inline attachments.
- It avoids emails to end up in SPAM (applying best practices, with no guarantee)
- It automatically converts rich e-mails in plain-text format for receivers who have not enabled HTML format
- It allows sending e-mails with attachements
- It inlines CSS (no header in HTML e-mails)
⚠ warning It requires an SMTP server.
Setup the environment
pip install concrete-mailer
User Guide
concrete-mailer
can be used in two ways:
1- Email Client (client.py)
from concrete_mailer.client import EmailSenderClient
import os
#: Define the smtp connexion variables in:
#: SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_HOST_USER, SMTP_HOST_PASSWORD
client = EmailSenderClient(
email_host=os.getenv('SMTP_HOST_NAME'), #: smtp hostname
email_port=os.getenv('SMTP_HOST_PORT'), #: smtp host port
email_host_user=os.getenv('SMTP_HOST_USER'), #: smtp host username
email_host_password=os.getenv('SMTP_HOST_PASSWORD'), #: smtp host password
)
for name, email in (('John', 'john@mail.ext'), ('Jane', 'jane@mail.ext')):
client.send(
context={'name': name},
template='''
<h1>Concrete Mailer</h1>
<p>Hello {{name}}. Welcome to README</p>
<img src="/path/to/image1.jpg">
''',
title='README',
dests=[email, 'cc@netsach.org'],
sender_name='Netsach',
sender_email='sender@netsach.org',
reply_to='contact@netsach.org',
attachments=['/path/to/file.zip', '/path/to/image2.png'],
)
send
method returns:
True
if the email is successfully sent.False
if a problem has occured.
2- Email preparers (preparer.py)
from concrete_mailer.utils.preparers import prepare_email
import os
#: Define the smtp connexion variables in:
#: SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_HOST_USER, SMTP_HOST_PASSWORD
for name, email in (('John', 'john@mail.ext'), ('Jane', 'jane@mail.ext')):
email = prepare_email(
context={'name': name},
html='''
<h1>Concrete Mailer</h1>
<p>Hello {{name}}. Welcome to README</p>
<img src="/path/to/image1.jpg">
''',
title='README',
css='', #: extra css
sender='Netsach <sender@netsach.org>',
reply_to='contact@netsach.org',
recipients=[email, 'cc@netsach.org'],
attachments=['/path/to/file.zip', '/path/to/image2.png'],
email_host=os.getenv('SMTP_HOST_NAME'), #: smtp hostname
email_port=os.getenv('SMTP_HOST_PORT'), #: smtp host port
email_host_user=os.getenv('SMTP_HOST_USER'), #: smtp host username
email_host_password=os.getenv('SMTP_HOST_PASSWORD'), #: smtp host password
)
email.send()
send
method returns:
True
if the email is successfully sent.False
if a problem has occured.
Debug
An additionnal debug
kwargs (False
by default) can be added with the following behaviour:
- if
debug
isFalse
(default), then the client will try to establish an smtp connection and send the email with the given options. - if
debug
isTrue
, the email body will be displayed in console instead of being sent to destinations. No stmp connection will be established (dry-run)
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
concrete-mailer-2.14.0.tar.gz
(20.5 kB
view hashes)
Built Distribution
Close
Hashes for concrete_mailer-2.14.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b40d8c09d6fa71d512de72f550b970b6167ce51904b95c9ffc30ff8d75c29244 |
|
MD5 | 2f3611928ed7f6ee5dac70a4002f0bfa |
|
BLAKE2b-256 | 630c65ea72c6dbef9e12a490a469baf58dc930d5259c722ec6e06267605ab052 |