Email setup
This guide explains how to configure the secure email verification/password reset. You can configure it to work with various email services, including Gmail, Mailgun, and custom mail servers.
For a quick overview, refer to the user guide provided here: Password Reset
General setup
LibreChat supports multiple email providers:
- Mailgun API - Recommended for servers that block SMTP ports
- SMTP Services - Traditional email sending via Gmail, Outlook, or custom mail servers
Common Configuration
These variables are used by both Mailgun and SMTP:
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_FROM | string | From email address. Required. | [email protected] |
| EMAIL_FROM_NAME | string | From name (defaults to APP_TITLE if not set). | EMAIL_FROM_NAME=LibreChat |
Mailgun Configuration (Recommended)
Mailgun is particularly useful for deployments on servers that block SMTP ports to prevent spam. When both MAILGUN_API_KEY and MAILGUN_DOMAIN are set, LibreChat will use Mailgun instead of SMTP.
| Key | Type | Description | Example |
|---|---|---|---|
| MAILGUN_API_KEY | string | Your Mailgun API key (required for Mailgun). | MAILGUN_API_KEY= |
| MAILGUN_DOMAIN | string | Your Mailgun domain, e.g., mg.yourdomain.com (required for Mailgun). | MAILGUN_DOMAIN= |
| MAILGUN_HOST | string | Custom Mailgun API host (optional). Use https://api.eu.mailgun.net for EU region. | MAILGUN_HOST=https://api.mailgun.net |
SMTP Configuration
Basic Configuration
If you want to use one of the predefined services, configure only these variables: For more info about supported email services: https://community.nodemailer.com/2-0-0-beta/setup-smtp/well-known-services/
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_SERVICE | string | Email service (e.g., Gmail, Outlook). | EMAIL_SERVICE= |
| EMAIL_USERNAME | string | Username for authentication. | EMAIL_USERNAME= |
| EMAIL_PASSWORD | string | Password for authentication. | EMAIL_PASSWORD= |
Advanced Configuration
If you want to use a generic SMTP service or need advanced configuration for one of the predefined providers, configure these variables as well:
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_HOST | string | Mail server host. | EMAIL_HOST= |
| EMAIL_PORT | number | Mail server port. | EMAIL_PORT=25 |
| EMAIL_ENCRYPTION | string | Encryption method (starttls, tls, etc.). | EMAIL_ENCRYPTION= |
| EMAIL_ENCRYPTION_HOSTNAME | string | Hostname for encryption. | EMAIL_ENCRYPTION_HOSTNAME= |
| EMAIL_ALLOW_SELFSIGNED | boolean | Allow self-signed certificates. | EMAIL_ALLOW_SELFSIGNED= |
Warning
Failing to configure either Mailgun or SMTP properly will result in LibreChat using the unsecured password reset! This allows anyone to reset any password on your server immediately, without mail being sent at all!
Setup with Mailgun
To set up Mailgun, follow these steps:
- Sign up for a Mailgun account at mailgun.com
- Add and verify your domain in the Mailgun dashboard
- Navigate to the API Keys section and copy your Private API key
- In the
.envfile, modify the variables as follows:
| Key | Type | Description | Example |
|---|---|---|---|
| MAILGUN_API_KEY | string | Your Mailgun private API key | MAILGUN_API_KEY=your-mailgun-api-key |
| MAILGUN_DOMAIN | string | Your verified Mailgun domain | MAILGUN_DOMAIN=mg.yourdomain.com |
| EMAIL_FROM | string | Sender email address | [email protected] |
| EMAIL_FROM_NAME | string | Sender name | EMAIL_FROM_NAME=LibreChat |
| MAILGUN_HOST | string | (Optional) For EU region | MAILGUN_HOST=https://api.eu.mailgun.net |
Note
If your Mailgun account is in the EU region, make sure to set MAILGUN_HOST=https://api.eu.mailgun.net
Setup with Gmail
To set up Gmail, follow these steps:
- Create a Google Account and enable 2-step verification.
- In the Google Account settings, click on the "Security" tab and open "2-step verification."
- Scroll down and open "App passwords." Choose "Mail" for the app and select "Other" for the device, then give it a random name.
- Click on "Generate" to create a password, and copy the generated password.
- In the
.envfile, modify the variables as follows:
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_SERVICE | string | gmail | EMAIL_SERVICE=gmail |
| EMAIL_USERNAME | string | your-email | EMAIL_USERNAME=your-email |
| EMAIL_PASSWORD | string | your-email-password | EMAIL_PASSWORD=your-email-password |
| EMAIL_FROM | string | email address for the from field, e.g., [email protected] | [email protected] |
| EMAIL_FROM_NAME | string | My LibreChat Server | EMAIL_FROM_NAME=LibreChat |
Setup with custom mail server
To set up a custom mail server, follow these steps:
- Gather your SMTP login data from your provider. The steps are different for each, but they will usually list values for all variables.
- In the
.envfile, modify the variables as follows, assuming some sensible example values:
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_HOST | string | Hostname to connect to | EMAIL_HOST=mail.example.com |
| EMAIL_PORT | integer | Port to connect to | EMAIL_PORT=25 |
| EMAIL_ENCRYPTION | string | Encryption type | EMAIL_ENCRYPTION=starttls |
| EMAIL_USERNAME | string | Your email username | [email protected] |
| EMAIL_PASSWORD | string | Your app password | EMAIL_PASSWORD=password |
| EMAIL_FROM | string | Email address for the from field | [email protected] |
| EMAIL_FROM_NAME | string | Name that will appear in the "from" field | EMAIL_FROM_NAME=LibreChat |
Complete Configuration Examples
Example 1: Mailgun Configuration
Example 2: Gmail SMTP Configuration
Example 3: Custom SMTP Server Configuration
Troubleshooting
Mailgun Issues
- Authentication Failed: Ensure your Mailgun API key is correct and has sending permissions
- Domain Not Found: Verify your Mailgun domain is correctly configured in your Mailgun account
- EU Region Issues: If your Mailgun account is in the EU region, make sure to set
MAILGUN_HOST=https://api.eu.mailgun.net - Fallback to SMTP: If only one of
MAILGUN_API_KEYorMAILGUN_DOMAINis set, the system will fall back to SMTP configuration
SMTP Issues
- Connection Refused: Check if your server allows outbound SMTP connections on the specified port
- Authentication Failed: Verify your username and password are correct
- Gmail App Password: For Gmail, you must use an app-specific password, not your regular password
- Self-signed Certificates: If your mail server uses self-signed certificates, set
EMAIL_ALLOW_SELFSIGNED=true
General Issues
- No Emails Sent: Check the LibreChat logs for error messages
- Unsecured Password Reset: This occurs when neither Mailgun nor SMTP is properly configured
- From Address Issues: Ensure the
EMAIL_FROMaddress is valid and authorized to send from your mail service
How is this guide?