aiosmtpd
aiosmtpd - asyncio based SMTP server
Decision gist · record as of 2026-08-14
Yes. aiosmtpd is actively maintained, permissively licensed, has low install friction, and fills a genuine gap for async SMTP server use cases. It's well-suited for testing, prototyping, and production email reception in async Python applications. No known vulnerabilities as of the fact sheet date.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; asyncio event loop must be available in the runtime environment.
- Low install friction with only two lightweight runtime dependencies (atpublic and attrs).
- The package is actively maintained with a recent commit as of 2026-08-12, supports Python 3.8 through 3.12, and has been in development since 2015-10-20.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most deployment scenarios.
last release 2024-05-18 (818 days) · last repo commit 2026-08-12 · 373 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,895,655 downloads/mo, #3,453 on PyPI
Alternatives
Verify before relying
pip install aiosmtpd
import asyncio
from aiosmtpd.smtp import SMTP
async def main():
smtp = SMTP()
await smtp.handle_EHLO(None, None)
asyncio.run(main())- Whether the package includes built-in handlers for common mail delivery scenarios or requires custom handler implementation.
- Performance characteristics under high concurrent connection loads.
- Compatibility with modern mail client authentication schemes (SASL, TLS).
What it is and what it does
aiosmtpd is an asyncio-based SMTP server implementation that replaces the synchronous smtpd module from Python's standard library. It allows you to build email servers and mail transport agents (MTAs) that can handle multiple concurrent SMTP connections without blocking. The package is built on asyncio, making it suitable for integration into async Python applications that need to receive, process, or relay email messages.
The server implements SMTP and related MTA protocols, letting you define custom handlers for incoming mail. It runs on Windows, Linux, FreeBSD, and supports both CPython and PyPy across Python 3.8 through 3.12. With only two runtime dependencies (atpublic and attrs), it has minimal overhead and integrates cleanly into existing async codebases.
Use it for
- Build a test SMTP server for development and integration testing of email-sending applications.
- Implement a mail relay or gateway that receives SMTP connections and forwards messages to downstream systems.
- Create a custom email processing pipeline that captures incoming messages for logging, filtering, or transformation.
- Run a local SMTP listener for development environments to intercept and inspect outgoing mail without sending it.
- Integrate email reception into an async web application or microservice architecture.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
aiosmtpd is actively maintained, permissively licensed, has low install friction, and fills a genuine gap for async SMTP server use cases. It's well-suited for testing, prototyping, and production email reception in async Python applications. No known vulnerabilities as of the fact sheet date.
Install
aiosmtpd on PyPI
Before you install
Low install friction with only two lightweight runtime dependencies (atpublic and attrs). The package is actively maintained with a recent commit as of 2026-08-12, supports Python 3.8 through 3.12, and has been in development since 2015-10-20.
Requires Python 3.8 or later; asyncio event loop must be available in the runtime environment.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most deployment scenarios.
Quickstart
pip install aiosmtpd
import asyncio
from aiosmtpd.smtp import SMTP
async def main():
smtp = SMTP()
await smtp.handle_EHLO(None, None)
asyncio.run(main())
Verify before relying
- Whether the package includes built-in handlers for common mail delivery scenarios or requires custom handler implementation.
- Performance characteristics under high concurrent connection loads.
- Compatibility with modern mail client authentication schemes (SASL, TLS).
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesatpublicattrs |
| Maintenance | Actively maintained 818 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,895,655 / month, #3,453 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Framework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI ApprovedLicense :: OSI Approved :: Apache Software LicenseOperating System :: Microsoft :: WindowsOperating System :: POSIX :: BSD :: FreeBSDOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Communications :: Email :: Mail Transport Agents |
Evidence: aiosmtpd-1.4.6-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “asyncio smtp server”
- aiosmtpdaiosmtpd is an asyncio-based SMTP server that handles email message…
- aiosmtplibaiosmtplib is an asynchronous SMTP client that sends email messages…
- pytest-localserverProvides pytest fixtures that spin up local HTTP and SMTP servers for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Email packages
Converts Markdown text to HTML using a Python implementation of John Gruber's Markdown specification, with support for extensions.
Install it if you need to parse Markdown in Python.
aiosmtplib is an asynchronous SMTP client that sends email messages using asyncio, allowing non-blocking email operations in async Python applications.
Wikipedia-API is a Python wrapper for Wikipedia's MediaWiki API that retrieves page content, sections, links, categories, and metadata in both synchronous and asynchronous modes.
Extracts encapsulated HTML and plain text content from RTF bodies in .msg email files, reversing the RTF encapsulation that Microsoft Exchange applies.
Parses Outlook MSG files to extract email messages, attachments, and message properties like sent date and sender information.
Sends and receives email in Django through multiple transactional email service providers (ESPs) with a unified API that avoids vendor lock-in.
Install it if you're using Django and any transactional ESP; the abstraction pays for itself the moment you need to switch providers.
See also yagmail · fastapi-mail · redmail · apache-airflow-providers-smtp · mailosaur · mailsuite · aiogoogle · Flask-Mail · emails