payload-email-azure
v0.1.3
Published
Payload Azure Email Adapter
Downloads
6
Readme
Azure Email Communication Services Adapter
This adapter allows you to send emails using Azure Email Communication Services
Installation
pnpm add payload-email-azure
Prerequesites
- 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: "[email protected]",
connectionString: process.env.AZURE_EMAIL_CONNECTION_STRING,
}),
});
Note: The
defaultFromAddress
must match one of the pre-configuredEmailFrom
addresses in your Azure Communication Service resource.
Authentication
There are a few different options available for authenticating an email client with Azure.
Using Connection String
import { azureEmailAdapter } from "payload-email-azure";
export default buildConfig({
email: azureEmailAdapter({
defaultFromAddress: "[email protected]",
connectionString: process.env.AZURE_EMAIL_CONNECTION_STRING,
}),
});
Using Microsoft Entra ID
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: "[email protected]",
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(),
}),
});
Using Azure Key Credentials
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: "[email protected]",
endpoint: process.env.AZURE_EMAIL_ENDPOINT,
credential: new AzureKeyCredential(process.env.AZURE_EMAIL_KEY),
}),
});