azure-communication-email
Microsoft Azure MyService Management Client Library for Python
What it is and what it does
This is the official Python SDK for sending emails through Azure Communication Services. It wraps the Azure email API, letting you construct and dispatch messages with support for multiple recipient types (to, cc, bcc), file attachments, and inline content references. The client handles authentication via connection string, Azure Active Directory, or API key credentials, and provides a poller-based interface to track send status asynchronously.
You define messages as dictionaries specifying subject, body (plain text and/or HTML), recipients, sender address, and optional attachments with base64-encoded content. The package depends on azure-core for HTTP transport and credential handling, isodate for date parsing, and typing-extensions for type hints. It targets modern Python versions (3.9–3.13) and is maintained as part of the broader Azure SDK ecosystem.
Use it for:
- Send transactional emails (password resets, order confirmations) from a Python application integrated with Azure.
- Dispatch bulk marketing or notification emails to multiple recipients with cc/bcc support.
- Attach files or embed inline images in emails programmatically without managing SMTP infrastructure.
- Integrate email delivery into an Azure-hosted microservice or serverless function.
- Track email send status asynchronously using the returned poller object.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Sends emails via Azure Communication Services, supporting multiple recipients, attachments, and inline content through a Python client library.
Yes, if you are already using Azure and need to send email from Python. The package is production-stable, actively maintained, has no known vulnerabilities, and integrates cleanly with Azure authentication and infrastructure. Install only if you have an Azure Communication Service resource set up; it is not suitable for standalone SMTP or third-party email providers.
Install
azure-communication-email on PyPI
pip
pip install azure-communication-emailuv
uv add azure-communication-emailpoetry
poetry add azure-communication-emailInstalling azure-communication-email
Before you install
Low friction install with three lightweight runtime dependencies (isodate, azure-core, typing-extensions). Active maintenance with recent release (301 days ago) and ongoing repository activity.
License in practice
MIT License permits commercial and private use with minimal restrictions—you may use, modify, and distribute this package freely provided you include the license notice.
Quickstart
pip install azure-communication-email
from azure.communication.email import EmailClient
connection_string = "endpoint=https://<resource>.communication.azure.com/;accessKey=<key>"
client = EmailClient.from_connection_string(connection_string)
message = {"content": {"subject": "Test", "plainText": "Body"}, "recipients": {"to": [{"address": "user@example.com"}]}, "senderAddress": "sender@contoso.com"}
poller = client.begin_send(message)
result = poller.result()
Requires an active Azure Communication Service resource with an Email Communication Resource and verified sender domain configured in Azure.
Verify before relying
- Whether the package supports custom SMTP configuration or only Azure-hosted email services.
- Rate limits and throughput guarantees for bulk email operations.
- Retry behavior and delivery guarantees for failed send attempts.
Package facts
| License | MIT License (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — isodate, azure-core, typing-extensions |
| Maintenance | actively maintained — 301 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,792,534/month — #2,497 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: azure_communication_email-1.1.0-py3-none-any.whl
Keywords: azure, azure sdk
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
fastapi-mailSends emails and attachments asynchronously…
permissive · top 5,000 on PyPI
resendResend Python SDK provides a client library for…
permissive · top 5,000 on PyPI
notifications-python-clientA Python client library for sending emails,…
permissive · top 15,000 on PyPI
yagmailSimplifies sending emails via Gmail or any SMTP…
permissive · top 15,000 on PyPI
emailsBuild and send HTML and plain-text emails with…
permissive · top 15,000 on PyPI
simplegmailA Python wrapper around the Gmail API that…
permissive · top 15,000 on PyPI
sparkpostOfficial Python client for the SparkPost email…
permissive · top 15,000 on PyPI
azure-servicebusAzure Service Bus client library for Python…
unclear · top 1,000 on PyPI
redmailRedmail simplifies sending emails with Python…
permissive · top 15,000 on PyPI
azure-communication-chatPython SDK for Azure Communication Services…
permissive · top 15,000 on PyPI