Skip to main content

Fastapi-mail

The fastapi-mail is a simple lightweight mail system, for sending emails and attachments(individual && bulk)

MIT licensed GitHub stars GitHub forks GitHub issues Downloads

🔨 Installation

python3 -m venv .venv

source .venv/bin/activate

pip install fastapi-mail

for aioredis and httpx

pip install 'fastapi-mail[aioredis]'
pip install 'fastapi-mail[httpx]'

Alternatively, if you prefer to use poetry for package dependencies:

poetry shell

poetry add fastapi-mail

for aioredis and httpx

poetry add 'fastapi-mail[aioredis]'
poetry add 'fastapi-mail[httpx]'

Documentation: FastApi-MAIL

The key features are:

  • sending emails either with FastApi or using asyncio module
  • sending emails using FastApi background task managment
  • sending files either from form-data or files from server
  • Using Jinja2 HTML Templates
  • email utils (utility allows you to check temporary email addresses, you can block any email or domain)
  • email utils has two available classes DefaultChecker and WhoIsXmlApi
  • Unittests using FastapiMail

More information on Getting-Started

Guide

from typing import List

from fastapi import BackgroundTasks, FastAPI
from fastapi_mail import ConnectionConfig, FastMail, MessageSchema, MessageType
from pydantic import BaseModel, EmailStr
from starlette.responses import JSONResponse



class EmailSchema(BaseModel):
    email: List[EmailStr]


conf = ConnectionConfig(
    MAIL_USERNAME ="username",
    MAIL_PASSWORD = "**********",
    MAIL_FROM = "test@email.com",
    MAIL_PORT = 465,
    MAIL_SERVER = "mail server",
    MAIL_STARTTLS = False,
    MAIL_SSL_TLS = True,
    USE_CREDENTIALS = True,
    VALIDATE_CERTS = True
)

app = FastAPI()


html = """
<p>Thanks for using Fastapi-mail</p> 
"""


@app.post("/email")
async def simple_send(email: EmailSchema) -> JSONResponse:

    message = MessageSchema(
        subject="Fastapi-Mail module",
        recipients=email.dict().get("email"),
        body=html,
        subtype=MessageType.html)

    fm = FastMail(conf)
    await fm.send_message(message)
    return JSONResponse(status_code=200, content={"message": "email has been sent"})     

List of Examples

For more examples of using fastapi-mail please check: example section.

Contributors ✨

Thanks goes to these wonderful People

Contributing

Contributions of any kind are welcome!

Before you start, please read CONTRIBUTING

LICENSE

MIT

Release files for fastapi-mail 1.2.6

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

Source distribution (sdist)

Source distribution for fastapi-mail 1.2.6
File Size Uploaded
fastapi_mail-1.2.6.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-mail 1.2.6
File Interpreter ABI Platform
fastapi_mail-1.2.6-py3-none-any.whl Python 3 none any Details

Total release size:27.8 kB

Release files / fastapi_mail-1.2.6.tar.gz

Download URL fastapi_mail-1.2.6.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e775989cae5426ec7f5076fff52744a41b4bc3049fdfd95ce73c7b2c1805d62d
BLAKE2b-256 checksum
How to use checksums
ee70acf6ecc54e886a8bfe5aa197fe27058b09c4c6d436249404259c1f705d1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1033-azure

Release files / fastapi_mail-1.2.6-py3-none-any.whl

Download URL fastapi_mail-1.2.6-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de435e5ab6691c59f7b11a0379cb3542e599ff6acfd3427eefa88e092361ba15
BLAKE2b-256 checksum
How to use checksums
eade2a9497f13952ef170d23f29a29dd26b11472697c5054433cad3cccfc145d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1033-azure

Release history Release notifications | RSS feed

1.6.8

2 release files

1.6.7

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.9

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

This release

1.2.6 This release

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.5

2 release files

1.1.4

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.4.4

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.7

2 release files

0.3.0

2 release files

0.2.7.6

1 release file

0.2.7.4

1 release file

0.2.7.3

1 release file

0.2.7.2

1 release file

0.2.7.1

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.5

2 release files

0.1.2

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.7

1 release file

0.0.5

1 release file

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