This adapter allows you to send emails using Azure Email Communication Services
pnpm add payload-email-azure
- An Azure account with an active subscription.
- An Azure Email Communication Services resource created and ready with a provisioned domain.
- An active Azure Communication Services resource connected to an Email Domain and its connection string. Get started by connecting an Email Communication Resource with a Azure Communication Resource
import { azureEmailAdapter } from "payload-email-azure";
export default buildConfig({
email: azureEmailAdapter({
defaultFromAddress: "DoNotReply@notify.example.com",
connectionString: process.env.AZURE_EMAIL_CONNECTION_STRING,
}),
});
Note: The
defaultFromAddress
must match one of the pre-configuredEmailFrom
addresses in your Azure Communication Service resource.
There are a few different options available for authenticating an email client with Azure.
import { azureEmailAdapter } from "payload-email-azure";
export default buildConfig({
email: azureEmailAdapter({
defaultFromAddress: "noreply@notify.example.com",
connectionString: process.env.AZURE_EMAIL_CONNECTION_STRING,
}),
});
You may also choose to authenticate with Microsoft Entra ID using the
@azure/identity
package.
import { azureEmailAdapter } from "payload-email-azure";
import { DefaultAzureCredential } from "@azure/identity";
export default buildConfig({
email: azureEmailAdapter({
defaultFromAddress: "noreply@notify.example.com",
endpoint: process.env.AZURE_EMAIL_ENDPOINT,
// The DefaultAzureCredential uses the following environment variables:
// AZURE_CLIENT_SECRET, AZURE_CLIENT_ID and AZURE_TENANT_ID
credential: new DefaultAzureCredential(),
}),
});
You can also choose to authenticate the email client using an
AzureKeyCredential. Both the key
and the endpoint
can be founded on the
"Keys" pane under "Settings" in your Communication Services Resource.
import { azureEmailAdapter } from "payload-email-azure";
import { AzureKeyCredential } from "@azure/core-auth";
export default buildConfig({
email: azureEmailAdapter({
defaultFromAddress: "noreply@notify.example.com",
endpoint: process.env.AZURE_EMAIL_ENDPOINT,
credential: new AzureKeyCredential(process.env.AZURE_EMAIL_KEY),
}),
});