> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Email Service

> Enable email service to activate in-app email notifications, self-service password reset, invitation emails, and other features.

## Configuration Methods

Teable supports two ways to configure email service:

<CardGroup cols={2}>
  <Card title="Admin Panel (Recommended)" icon="sliders" href="#option-1-admin-panel-recommended">
    Visual configuration with live testing. No restart required.
  </Card>

  <Card title="Environment Variables" icon="code" href="#option-2-environment-variables">
    Traditional configuration via `.env` file. Requires container restart.
  </Card>
</CardGroup>

***

## Option 1: Admin Panel (Recommended)

The easiest way to configure email is through the Admin Panel:

1. Log in as an administrator (the first registered user)
2. Go to **Admin Panel** → **Instance settings**
3. Find the **Email** section
4. Configure **Notify email** and **Automation email** as needed

<Tip>
  The Admin Panel configuration supports **live testing** — you can verify your SMTP settings work before saving.
</Tip>

* **Notify email**: Used for user verification, password reset, invitations, system notifications, and similar emails.
* **Automation email**: Used as the default mail service for automation Send Email actions. A single Send Email action can also configure its own [custom SMTP server](/en/basic/automation/actions/communication/smtp-sender).

### Configuration sources and priority

We recommend configuring mail service in **Admin Panel → Instance settings → Email** first. The effective priority is:

1. **Custom mail server inside the Send Email action**: Applies only to that specific Send Email action in the current automation.
2. **Admin Panel → Instance settings → Email → Automation email**: Used by automation emails when the Send Email action does not configure its own mail server.
3. **Admin Panel → Instance settings → Email → Notify email**: Used for user verification, password reset, invitations, system notifications, and similar emails. It is also used as the fallback for automation emails if Automation email is not configured.
4. **`BACKEND_MAIL_*` environment variables**: Deployment-level default mail configuration. Used only as a fallback when the corresponding mailbox is not configured in the Admin Panel.

### Configuration Fields

| Field          | Description                   | Example                    |
| -------------- | ----------------------------- | -------------------------- |
| Server address | SMTP server address           | `smtp.gmail.com`           |
| Port           | SMTP port                     | `465` (SSL) or `587` (TLS) |
| SSL/TLS        | Whether to use SSL/TLS        | `true`                     |
| Username       | SMTP authentication user      | `noreply@company.com`      |
| Password       | SMTP password or app password | `xxxxxxxxxxxxxx`           |
| Sender address | From address                  | `noreply@company.com`      |
| Sender name    | Display name                  | `Teable Notification`      |

***

## Option 2: Environment Variables

For deployments where you prefer file-based configuration, use environment variables:

<Note>
  We recommend configuring Notify email and Automation email in **Admin Panel → Instance settings → Email** first. Environment variables are mainly used as deployment-level defaults and fallback configuration.
</Note>

```sh theme={null}
BACKEND_MAIL_HOST=smtp.example.com
BACKEND_MAIL_PORT=465
BACKEND_MAIL_SECURE=true
BACKEND_MAIL_SENDER=noreply@company.com
BACKEND_MAIL_SENDER_NAME=Teable
BACKEND_MAIL_AUTH_USER=username
BACKEND_MAIL_AUTH_PASS=your_password
```

<Note>
  After changing environment variables, you must **restart** the Teable container for changes to take effect.
</Note>

***

## SMTP Provider Examples

<Accordion title="AWS SES">
  ```sh theme={null}
  # How to obtain: AWS Console → Simple Email Service → SMTP Settings → Create SMTP Credentials
  BACKEND_MAIL_HOST=email-smtp.us-east-1.amazonaws.com  # Replace with your region
  BACKEND_MAIL_PORT=465
  BACKEND_MAIL_SECURE=true
  BACKEND_MAIL_SENDER=noreply@yourdomain.com  # Must be a verified sender address
  BACKEND_MAIL_SENDER_NAME=Teable Notification
  BACKEND_MAIL_AUTH_USER=your_smtp_username   # AWS SMTP username
  BACKEND_MAIL_AUTH_PASS=xxxxxxxxxxxxxx       # AWS SMTP password
  ```
</Accordion>

<Accordion title="Gmail">
  ```sh theme={null}
  # How to obtain: Google Account → Security → 2-Step Verification → App Passwords
  BACKEND_MAIL_HOST=smtp.gmail.com
  BACKEND_MAIL_PORT=465
  BACKEND_MAIL_SECURE=true
  BACKEND_MAIL_SENDER=you@gmail.com
  BACKEND_MAIL_SENDER_NAME=Teable Notification
  BACKEND_MAIL_AUTH_USER=you@gmail.com
  BACKEND_MAIL_AUTH_PASS=xxxxxxxxxxxxxx  # 16-digit app password
  ```
</Accordion>

<Accordion title="Microsoft 365 / Outlook">
  ```sh theme={null}
  # How to obtain: Microsoft 365 admin center → Security → Policies & rules → Email authentication
  BACKEND_MAIL_HOST=smtp.office365.com
  BACKEND_MAIL_PORT=587
  BACKEND_MAIL_SECURE=true
  BACKEND_MAIL_SENDER=your.name@yourdomain.com
  BACKEND_MAIL_SENDER_NAME=Teable Notification
  BACKEND_MAIL_AUTH_USER=your.name@yourdomain.com
  BACKEND_MAIL_AUTH_PASS=xxxxxxxxxxxxxx  # Your Microsoft 365 password or app password
  ```
</Accordion>

<Accordion title="SendGrid">
  ```sh theme={null}
  # How to obtain: SendGrid Dashboard → Settings → API Keys → Create API Key
  BACKEND_MAIL_HOST=smtp.sendgrid.net
  BACKEND_MAIL_PORT=465
  BACKEND_MAIL_SECURE=true
  BACKEND_MAIL_SENDER=noreply@yourdomain.com
  BACKEND_MAIL_SENDER_NAME=Teable Notification
  BACKEND_MAIL_AUTH_USER=apikey
  BACKEND_MAIL_AUTH_PASS=xxxxxxxxxxxxxx  # Your SendGrid API Key
  ```
</Accordion>

***

## Related Documentation

* [Environment Variables Reference](/en/deploy/env)
* [Admin Panel Overview](/en/basic/admin-panel/overview)
