EasyGmail is a lightweight, minimalistic, and synchronous Python API designed for quick email sending via Gmail.
The current release is a beta release. By stable release 1.0, the following features are projected to be added:
- Unit testing
- Static Site Documentation
- File Attachments
- HTML Emails
- Variadic Recipients
pip install git+https://github.com/ayushgun/easygmail
Before using EasyGmail, ensure you have an app password for Gmail. Do not use your regular account password.
from easygmail import Client, EmailBuilder
client = Client("<address>@gmail.com", "<app password>")
msg = EmailBuilder(
receiver="<recipient>@domain.com", subject="<subject text>", body="<body text>"
).build()
client.send(msg)
You can instantiate a Client
object in two ways:
- Direct Credentials: Provide email address and app password directly as arguments.
from easygmail import Client
client = Client("<address>@gmail.com", "<app password>")
- Environment File:
Use a
.env
file to store credentials.
from easygmail import Client
client = Client(env_file=".env")
Your .env
file should contain:
EMAIL_ADDRESS="<address>@gmail.com"
PASSWORD="<app password>"
Create EmailMessage
objects using one of the following methods:
- EmailBuilder Constructor:
from easygmail import EmailBuilder
msg = EmailBuilder(
receiver="<recipient>@domain.com", subject="<subject text>", body="<body text>"
).build()
- EmailBuilder Factory Interface:
from easygmail import EmailBuilder
msg = (
EmailBuilder()
.set_receiver("<recipient>@domain.com")
.set_subject("<subject text>")
.set_body("<body text>")
).build()
- Directly Using
EmailMessage
:
from email.message import EmailMessage
msg = EmailMessage()
msg["To"] = "<recipient>@domain.com"
msg["Subject"] = "<subject text>"
msg.set_content("<body text>")