Integrate Resend with Strapi to send emails reliably and ensure they land in the inbox using modern, developer-friendly tools. Resend focuses on high deliverability and a smooth integration experience, making it a strong choice for production-ready applications.
Key features that stand out:
Explore the Resend documentation to learn more.
Strapi is the leading open-source headless CMS offering features like customizable APIs, role-based permissions, multilingual support, etc. It simplifies content management and integrates effortlessly with modern frontend frameworks.
Explore the Strapi documentation for more details.
The out-of-the-box Strapi features allow you to get up and running in no time:
Learn more about Strapi 5 feature.
1. Install Strapi First, set up your Strapi project by running the command below:
# npm
npx create-strapi@latest
# yarn
yarn create strapi
# pnpm
pnpm create strapi2. Start Strapi Development Server After installation, start your Strapi development server using the command below:
# npm
npm run develop
# yarn
yarn develop3. Register an Admin User After starting your Strapi development server, proceed to create a new admin user.

Navigate to Resend and create a new account.

To send your first email, you need a Resend API key. You will be asked to add one during your onboarding, or head over to https://resend.com/api-keys to create one.
.env FileUpdate your environment variable file .env by adding the following variables:
RESEND_API_KEY=YOUR-RESEND-API-KEY
RESEND_DEFAULT_EMAIL=onboarding@resend.dev
RESEND_USER_EMAIL=YOUR-RESEND-EMAIL-ADDRESSRESEND_API_KEY represents your Resend API key.RESEND_DEFAULT_EMAIL represents the email provided by default by Resend, which is onboarding@resend.dev.RESEND_USER_EMAIL represents the email you used in creating your Resend account.Run the command below to install the Resend email provider from the Strapi plugins marketplace:
npm i strapi-provider-email-resendLocate the Plugin configuration file server/config/plugins.ts and update it with the following:
// Path:
module.exports = ({ env }) => ({
email: {
config: {
provider: "strapi-provider-email-resend",
providerOptions: {
apiKey: env("RESEND_API_KEY"), // Required
},
settings: {
defaultFrom: env("RESEND_DEFAULT_EMAIL"),
defaultReplyTo: env("RESEND_USER_EMAIL"),
},
},
},
});
Restart your development server after updating your configuration file.
Head over to Settings > Email > Configuration. You should see the plugin configuration data you created above.

1. Testing in the Admin Panel To test your Resend email provider plugin, navigate to Settings > Email > Configuration.
Inside the Recipient email field, enter the email you used when creating your Resend account and click the "Send test email" button.

If you get the success toast notification as shown above, then you have successfully integrated the Resend email provider in your Strapi application.
2. Testing in your Strapi Backend Code
For this example, let's use the bootstrap() lifecycle function to send an email.
Locate the ./src/index.ts file and add the following code:
import type { Core } from "@strapi/strapi";
export default {
/**
* An asynchronous register function that runs before
* your application is initialized.
*
* This gives you an opportunity to extend code.
*/
register(/* { strapi }: { strapi: Core.Strapi } */) {},
/**
* An asynchronous bootstrap function that runs before
* your application gets started.
*
* This gives you an opportunity to set up your data model,
* run jobs, or perform some special logic.
*/
bootstrap({ strapi }: { strapi: Core.Strapi }) {
const sendTestEmail = async () => {
await strapi.plugins.email.services.email.send({
to: process.env.RESEND_USER_EMAIL,
text: "Hello Theodore! Testing Resend and Strapi integration ",
subject: "Testing Resend Provider",
});
};
sendTestEmail();
},
};
After adding the code above to your lifecycle function, check your email inbox.

👋 NOTE The code above runs every time you start Strapi. So, ensure you remove the sendTestEmail function as we only used it for testing.
Congratulations! You have successfully integrated Resend and Strapi!
For the full code, visit this repository.
If you have any questions about Strapi 5 or just would like to stop by and say hi, you can join us at Strapi's Discord Open Office Hours, Monday through Friday at 12:30 pm - 1:30 pm CST: Strapi Discord Open Office Hours
For more details, visit the Strapi documentation and Resend documentation.
Resend is a modern email API designed for developers, supporting React Email for template creation. It provides excellent deliverability with a developer-friendly experience.
Install the Resend provider plugin, configure your API key in Strapi's plugins settings, and set sender details. Resend handles transactional email delivery reliably.
Yes, create email templates using React Email components, then send them through Resend from Strapi. This enables type-safe, component-based email development.
Yes, Resend provides test API keys that simulate sending without delivering emails. Use this for development and testing before switching to production keys.
Resend focuses on developer experience with modern APIs, React Email integration, and transparent pricing. It's built for developers who want email to "just work."