# Email Inventory

> Complete list of all emails shipped by default and how to disable each.

*Canonical: https://makerkit.dev/docs/tanstack-prisma/emails/email-inventory*

---

{% sequence title="Email Inventory" description="Complete inventory of all emails and configuration options." %}

[Overview](#overview)

[Authentication Emails](#authentication-emails)

[Account Management Emails](#account-management-emails)

[Organization Emails](#organization-emails)

[Disabling Emails](#disabling-emails)

{% /sequence %}

## Overview

The kit ships with 15 email templates covering authentication, account management, and organization workflows. All templates are located in `packages/email-templates/src/emails/` and use [React Email](https://react.email/components) for rendering.

Emails are categorized into:

1. **Authentication Emails** - Sign-in, verification, password reset
2. **Account Management Emails** - Email changes, account deletion
3. **Organization Emails** - Team invitations
4. **Admin Emails** - User moderation (templates exist, not wired yet)
5. **Generic Templates** - Reusable templates for custom use cases

## Authentication Emails

| Email | Template | When Sent |
|-------|----------|-----------|
| Magic Link | `magic-link.email.tsx` | User requests passwordless sign-in via magic link |
| Email Verification | `email-verification.email.tsx` | New user signs up (link-based verification) |
| Reset Password | `reset-password.email.tsx` | User requests password reset |
| OTP Sign-In | `otp-sign-in.email.tsx` | User signs in via OTP code |
| OTP Email Verification | `otp-email-verification.email.tsx` | New user signs up (OTP-based verification) |
| OTP Password Reset | `otp-password-reset.email.tsx` | User resets password via OTP code |

## Account Management Emails

| Email | Template | When Sent |
|-------|----------|-----------|
| Change Email Confirmation | `change-email-confirmation.email.tsx` | User initiates email change (sent to current email) |
| Password Changed | `password-changed.email.tsx` | User's password was changed (security notification) |
| Delete Account OTP | `delete-account-otp.email.tsx` | User initiates account deletion |

## Organization Emails

| Email | Template | When Sent |
|-------|----------|-----------|
| Invitation | `invite.email.tsx` | Member is invited to join an organization |

## Admin Emails (Templates Only)

These templates exist but are not currently wired to send automatically:

| Email | Template | Purpose |
|-------|----------|---------|
| User Banned | `user-banned.email.tsx` | Notify user their account was suspended |
| User Unbanned | `user-unbanned.email.tsx` | Notify user their account was restored |
| Account Deleted | `account-delete.email.tsx` | Confirm account deletion |

## Generic Templates

Reusable email templates for building custom emails:

| Email | Template | Purpose |
|-------|----------|---------|
| OTP | `otp.email.tsx` | Generic OTP email with i18n support. Used as base for sign-in, verification, and password reset OTPs |
| Verification | `verification.email.tsx` | Flexible verification template with customizable heading, body, code label, and optional warning message |

### Using the Generic Verification Template

The `verification.email.tsx` template accepts these props:

```typescript
interface Props {
  code: string;           // The verification code to display
  productName: string;    // Name shown in footer
  heading: string;        // Email heading
  body: string;           // Main body text
  codeLabel: string;      // Label before the code
  warning?: string;       // Optional warning message (shown in red)
  variant?: 'default' | 'destructive';  // Button style
}
```

### Using the Generic OTP Template

The `otp.email.tsx` template accepts these props and supports internationalization:

```typescript
interface Props {
  otp: string;            // The one-time password code
  productName: string;    // Name of the product/service
  language?: string;      // Language code for i18n
}
```

## Template Locations

All email templates are in `packages/email-templates/src/emails/`:

```
packages/email-templates/src/emails/
├── account-delete.email.tsx
├── change-email-confirmation.email.tsx
├── delete-account-otp.email.tsx
├── email-verification.email.tsx
├── invite.email.tsx
├── magic-link.email.tsx
├── otp.email.tsx
├── otp-email-verification.email.tsx
├── otp-password-reset.email.tsx
├── otp-sign-in.email.tsx
├── password-changed.email.tsx
├── reset-password.email.tsx
├── user-banned.email.tsx
├── user-unbanned.email.tsx
├── verification.email.tsx
```

To customize an email template, edit the corresponding file and the changes will apply to all sent emails.
