title | displayed_sidebar | description | canonicalUrl | tags | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Email Provider |
cloudSidebar |
Configure Strapi Cloud to use a third-party email provider. |
|
Strapi Cloud comes with a basic email provider out of the box. However, it can also be configured to utilize another email provider, if needed.
:::caution Please be advised that Strapi are unable to provide support for third-party email providers.
:::
:::prerequisites
- A local Strapi project running on
v4.8.2+
. - Credentials for another email provider (see Strapi Market).
:::
Configuring another email provider for use with Strapi Cloud requires 3 steps:
- Install the provider plugin in your local Strapi project.
- Configure the provider in your local Strapi project.
- Add environment variables to the Strapi Cloud project.
Using either npm
or yarn
, install the provider plugin in your local Strapi project as a package dependency by following the instructions in the respective entry for that provider in the Marketplace.
:::caution The file structure must match the below path exactly, or the configuration will not be applied to Strapi Cloud. :::
To configure a 3rd-party email provider in your Strapi project, create or edit the plugins configuration file for your production environment ./config/env/production/plugins.js|ts
by adding upload configuration options as follows:
module.exports = ({ env }) => ({
// … some unrelated plugins configuration options
// highlight-start
email: {
config: {
// … provider-specific upload configuration options go here
}
// highlight-end
// … some other unrelated plugins configuration options
}
});
export default ({ env }) => ({
// … some unrelated plugins configuration options
// highlight-start
email: {
config: {
// … provider-specific upload configuration options go here
}
// highlight-end
// … some other unrelated plugins configuration options
}
});
Each provider will have different configuration settings available. Review the respective entry for that provider in the Marketplace.
Example:
module.exports = ({ env }) => ({
// ...
email: {
config: {
provider: 'sendgrid',
providerOptions: {
apiKey: env('SENDGRID_API_KEY'),
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});
module.exports = ({ env }) => ({
// ...
email: {
config: {
provider: 'amazon-ses',
providerOptions: {
key: env('AWS_SES_KEY'),
secret: env('AWS_SES_SECRET'),
amazon: 'https://email.us-east-1.amazonaws.com',
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});
module.exports = ({ env }) => ({
// ...
email: {
config: {
provider: 'mailgun',
providerOptions: {
key: env('MAILGUN_API_KEY'), // Required
domain: env('MAILGUN_DOMAIN'), // Required
url: env('MAILGUN_URL', 'https://api.mailgun.net'), //Optional. If domain region is Europe use 'https://api.eu.mailgun.net'
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});
export default ({ env }) => ({
// ...
email: {
config: {
provider: 'sendgrid',
providerOptions: {
apiKey: env('SENDGRID_API_KEY'),
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});
export default ({ env }) => ({
// ...
email: {
config: {
provider: 'amazon-ses',
providerOptions: {
key: env('AWS_SES_KEY'),
secret: env('AWS_SES_SECRET'),
amazon: 'https://email.us-east-1.amazonaws.com',
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});
export default ({ env }) => ({
// ...
email: {
config: {
provider: 'mailgun',
providerOptions: {
key: env('MAILGUN_API_KEY'), // Required
domain: env('MAILGUN_DOMAIN'), // Required
url: env('MAILGUN_URL', 'https://api.mailgun.net'), //Optional. If domain region is Europe use 'https://api.eu.mailgun.net'
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});
:::tip Before pushing the above changes to GitHub, add environment variables to the Strapi Cloud project to prevent triggering a rebuild and new deployment of the project before the changes are complete. :::
- Log into Strapi Cloud and click on the corresponding project on the Projects page.
- Click on the Settings tab and choose Variables in the left menu.
- Add the required environment variables specific to the email provider.
- Click Save.
Example:
Variable | Value |
---|---|
SENDGRID_API_KEY |
your_sendgrid_api_key |
Variable | Value |
---|---|
AWS_SES_KEY |
your_aws_ses_key |
AWS_SES_SECRET |
your_aws_ses_secret |
Variable | Value |
---|---|
MAILGUN_API_KEY |
your_mailgun_api_key |
MAILGUN_DOMAIN |
your_mailgun_domain |
MAILGUN_URL |
your_mailgun_url |
To deploy the project and utilize another party email provider, push the changes from earlier. This will trigger a rebuild and new deployment of the Strapi Cloud project.
Once the application finishes building, the project will use the new email provider.
:::strapi Custom Provider If you want to create a custom email provider, please refer to the Providers documentation in the Developer Documentation. :::