Skip to main content

Dmail

This is a simple package that provides a simple way to send emails through code.

By default, the content of the mail should be written in markdown

Steins;Gate

Installation

A simple pip install will do :

python -m pip install Dmail

If you want support for code highlighting with pygments:

python -m pip install Dmail[CodeHighlight]

How to use:

import os
from Dmail.esp import Gmail

# email info
recipient_email = "xxx@gmail.com"
cc_email = "yyy@hotmail.fr"
sender_email = os.environ.get('email')
password = os.environ.get('password')

# Send Markdown e-mails :
message = """
# Email Content
This is a **test**

![test image](tests/files/another_image.jpg)

| Collumn1 | Collumn2 | Collumn3 |
| :------: | :------- | -------- |
| Content1 | Content2 | Content3 |

this is some other text

[^1]: This is a footnote.
[^2]: This is another footnote.
"""

with Gmail(sender_email, password) as gmail:
    gmail.send(message, recipient_email, subject="[Dmail] Markdown Demo", cc=cc_email,
           attachments=[r"path\to\image.jpg", r'path\to\pdf.pdf', r'path\to\text.txt'])
  • You can send an e-mail loaded from a file:
with Gmail(sender_email, password) as gmail:
    gmail.send_from_file(r"path\to\my_message.md", recipient_email, 
                         subject="[Dmail] Markdown File")
  • You can also send text or html content by specifying the subtype :
from Dmail.esp import Hotmail

message = "Simple e-mail"

with Hotmail(sender_email, password) as hotmail:
    hotmail.add_attachments(r"path\to\image.jpg", "another_name.jpg")
    hotmail.send(message, recipient_email, "[Dmail] Text demo", subtype='text')
  • The usage of a custom CSS stylesheet is possible :

    with Hotmail(sender_email, password, styles=r'path\to\style.css') as mail:
        mail.send(message, recipient_email, subject="[Dmail] Markdown Style")
    

Custom SMTP Server

  • You can use a custom smtp server and port:
from Dmail import Email

with Email(mail_server, mail_port, sender_email, password) as email:
    email.send(message, recipient_email, "[Dmail] Text demo")

APIs

Gmail Api

Installation

To use the Gmail Api you need to install extra packages :

python -m pip install Dmail[GmailApi]
First use

You can also use the Gmail API through a token ! You'll need to download "credentials.json" ( Step 1 of this guide : https://developers.google.com/gmail/api/quickstart/python#step_1_turn_on_the )

Send Email
from Dmail.api import GmailApi

message = """
# Email Content
This is a **test**
"""

with GmailApi(sender_email, 'token.pickle', 'credentials.json') as email:
    email.send(message, recipient_email, subject='[Dmail] Gmail Api - test')

Once you've given the rights, this will create the "token.pickle" that you can use later !

Create draft

Instead of sending the email, you can create it as a draft

from Dmail.api import GmailApi

with GmailApi(sender_email, 'token.pickle') as email:
    email.create_draft(message, recipient_email, '[Dmail] Gmail Api - draft')

If you like the project and want to support us, you can buy us a coffee here:

Buy Me A Coffee

Release files for Dmail 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Dmail 1.3.0
File Size Uploaded
Dmail-1.3.0.tar.gz 12.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Dmail 1.3.0
File Interpreter ABI Platform
Dmail-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.8 kB

Release files / Dmail-1.3.0.tar.gz

Download URL Dmail-1.3.0.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
932cb92194e02f2f918b2a88431ef94d5c963f40f77d628c088a509d28459436
BLAKE2b-256 checksum
How to use checksums
f9e199d3de93091629ed9dcd8601c1f6df46ab468a46f2c9c3580a7412379f2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10

Release files / Dmail-1.3.0-py3-none-any.whl

Download URL Dmail-1.3.0-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
702a4db8e2b0809d3f34d783034c2f124952e3105726910203c7eaca77766488
BLAKE2b-256 checksum
How to use checksums
aeb1fbfbfe92f3553e55b89462603ef161f90acbe21e467963bb375af0f748c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page