
By Balazs Frey
Azure Email Communcation Service provider for Strapi
released March 30, 2025
npm install strapi-provider-email-azure# using yarn
yarn add strapi-provider-email-azure
# using npm
npm install strapi-provider-email-azure --saveThen in your config/plugins.js:
module.exports = ({ env }) => ({
// ...
email: {
config: {
provider: 'strapi-provider-email-azure',
providerOptions: {
endpoint: env('AZURE_ENDPOINT'),
},
settings: {
defaultFrom: env('FALLBACK_EMAIL'),
},
},
},
// ...
});await strapi
.plugin('email')
.service('email')
.send({
from: process.env.EMAIL_SERVICE_ADDRESS,
to: [
{
address: 'recipent@email.address',
displayName: 'Display Name',
},
],
subject: 'Hello world',
text: 'Hello world',
});You can also leave the from field empty to send the email from the fallback address.
The following fields are supported:
| Field | Description |
|---|---|
| from | Email address of the sender (string) |
| to | Array of recipients (string | EmailAddress | Array<EmailAddress>) |
| cc | Array of recipients who get cc (string | EmailAddress | Array<EmailAddress>) |
| bcc | Array of recipients who get bcc (string | EmailAddress | Array<EmailAddress>) |
| replyTo | Email address to which replies are sent (Array<EmailAddress>) |
| subject | Subject of the email (string) |
| text | Plaintext version of the message (string) |
| html | HTML version of the message (string) |
| attachments | Array of attachments (Array<Attachment>) |
| disableUserEngagementTracking | Whether user engagement tracking should be disabled (boolean) |
| headers | Custom email headers (Dictionary<string, string>) |
type EmailAddress {
address: string,
displayName: string
}
type Attachment {
name: string,
contentType: string,
contentInBase64: string
}For more information, please refer to @azure/communication-email documentations:







AZURE_ENDPOINT=<connection_string>strapi-provider-email-azure in your environment variablesFALLBACK_EMAIL=DoNotReply@yourdomain
Then in your config/plugins.js:
module.exports = ({ env }) => ({
// ...
email: {
config: {
provider: 'strapi-provider-email-azure',
providerOptions: {
endpoint: env('AZURE_ENDPOINT'), // ex: https://<your-resource-name>-acsendpoint.<your-resource-location>.communication.azure.com
useManagedIdentity: true,
identityClientId: env('IDENTITY_CLIENT_ID') // GUID from the identity, ex : cf5c7b28-9eaa-47a1-b313-xxxxxxx
},
settings: {
defaultFrom: env('FALLBACK_EMAIL'),
},
},
},
// ...
});Share your work with the community and get it listed in the Strapi ecosystem for everyone to discover and use.
Submit
