Page summary:The Email feature sends transactional messages through local SMTP or external providers like SendGrid. Setup guidance in this documentation covers provider configuration and extending delivery via controllers or hooks.
The Email feature enables Strapi applications to send emails from a server or an external provider.
Configuration
Most configuration options for the Email feature are handled via your Strapi project's code. The admin panel provides a read-only view of the current configuration, connection status, and provider capabilities, and lets users send a test email.
- The email provider refers to the package that Strapi calls to send an email (e.g. official providers such as Sendgrid or community packages such as
@strapi/provider-email-nodemailer). Providers implement the logic for sending mail when Strapi invokes them. - The provider host (or server) refers to the connection details (e.g. an SMTP hostname, port, or REST API endpoint) that the provider exposes. Some providers hide these details behind an API key, while others require you to supply host-related options in your configuration.
The Email feature only handles outbound delivery. Receiving or parsing incoming messages is outside the scope of the built-in plugin and must be implemented with your email provider's inbound webhooks or a custom integration.
Admin panel settings
Path to configure the feature: Settings > Email feature > Configuration

The Configuration interface is read-only for most fields. It displays the current provider configuration and lets users test connectivity.
The following information is shown in the Configuration panel:
- Default sender email and, if the configured
defaultFromaddress includes a display name, Default sender name. - Default response email and, if the configured
defaultReplyToaddress includes a display name, Default reply-to name. - Email provider: the provider currently in use.
If the active provider supports SMTP connection verification (for example, the Nodemailer provider), a Connection status field is also shown with a Test connection button. Clicking it verifies the SMTP connection without sending a message. The button displays a Connected or Error badge depending on the result.
A Provider capabilities card appears below the main configuration when the active provider exposes SMTP metadata. It shows the SMTP server address, encryption protocol (TLS, STARTTLS, or None), authentication type and user, pool status (Idle or Active, when connection pooling is enabled), and badges for enabled features such as DKIM, OAuth2, rate limiting, and connection pool.
The only user-editable field on this page is the Recipient email field under Test email delivery. A Send test email button sends a test message to that address.
This page is only visible if the current role has the "Access the Email Settings page" permission enabled (see RBAC feature documentation for more information):

Code-based configuration
The Email feature requires a provider and a provider configuration in the config/plugins.js|ts file. See providers for detailed installation and configuration instructions.
Sendmail is the default email provider in the Strapi Email feature. It uses Nodemailer internally for mail delivery. It provides functionality for the local development environment but is not production-ready in the default configuration. For production stage applications you need to further configure Sendmail or change providers.
For most production setups that use a dedicated SMTP relay, consider switching to @strapi/provider-email-nodemailer (set provider to "nodemailer" in your email plugin config). See the dedicated Nodemailer configuration documentation for details.
In non-production environments, Strapi logs a one-time warning when the sendmail provider is active, suggesting this switch.
Email configuration options
Plugins configuration are defined in the config/plugins.js file or config/plugins.ts file. Please refer to providers for detailed provider-specific installation and configuration instructions.
| Option | Type | Description | Default Value | Notes |
|---|---|---|---|---|
provider | string | The email provider to use. | sendmail | Required |
providerOptions | object | The email provider options. | {} | Optional |
providerOptions.apiKey | string | The API key for the email provider. | '' | Optional |
settings | object | The email settings. | {} | Optional |
settings.defaultFrom | string | The default email address to use as the sender. | '' | Optional |
settings.defaultReplyTo | string | The default email address to use as the reply-to address. | '' | Optional |
ratelimit | object | The email rate limit settings. | {} | Optional |
ratelimit.enabled | boolean | Whether to enable rate limiting. | true | Optional |
ratelimit.interval | string | The interval for rate limiting in minutes. | 5 | Optional |
ratelimit.max | number | The maximum number of requests allowed during the interval. | 5 | Optional |
ratelimit.delayAfter | number | The number of requests allowed before rate limiting is applied. | 1 | Optional |
ratelimit.timeWait | number | Time to wait before responding to a request (in milliseconds). | 1 | Optional |
ratelimit.prefixKey | string | The prefix for the rate limit key. | ${userEmail} | Optional |
ratelimit.whitelist | array(string) | Array of IP addresses to whitelist from rate limiting. | [] | Optional |
ratelimit.store | object | Rate limiting storage location and for more information please see the koa2-ratelimit documentation. | MemoryStore | Optional |