---
title: "Email templates"
description: "Choose the language of the confirm e-mail, password reset and magic-link e-mails, write your own subject, message and button, set your button colour and how long each link works. Built-in English and Persian."
product: auth
language: en
url: https://abrova.ir/en/docs/auth/email-templates
updated: 2026-11-07
---

# Email templates

Choose the language of the confirm e-mail, password reset and magic-link e-mails, write your own subject, message and button, set your button colour and how long each link works. Built-in English and Persian.

> **Your users' language**
>
> Abrova Auth sends three e-mails: **confirm e-mail**, **password reset** and **magic link**. Each has a built-in English and Persian text. You choose the language for the project, the app can choose it per user, and you can write your own subject and message in **Abrova Auth › Email templates**.

## Step 1: Choose the language

Two settings decide the language of each e-mail, like in Firebase:

| Setting | Where | What it does |
| --- | --- | --- |
| `Template language` | Console › Abrova Auth › Email templates | The language of every e-mail the app sends without a language. English by default. |
| `languageCode` | The SDK, per user | The language of this user’s e-mails. It wins over the template language. |

Set the language in the app before sending a magic link, a password reset or a confirmation:

```dart
// Flutter
await AbrovaAuth.instance.setLanguageCode('fa'); // or useDeviceLanguage()
```

```swift
// iOS
AbrovaAuth.shared.languageCode = "fa" // or AbrovaAuth.shared.useAppLanguage()
```

```kotlin
// Android
AbrovaAuth.shared.languageCode = "fa" // or AbrovaAuth.shared.useAppLanguage()
```

```typescript
// Web and React Native
auth.languageCode = 'fa'; // or auth.useDeviceLanguage()
```

The value is a language tag such as `fa`, `fa-IR` or `en-US`. A language Abrova has no texts for uses the template language. Without an SDK, send the `x-abrova-locale` header with the request.

The link in the e-mail carries the language too, so Abrova's own confirm and reset pages open in the same language.

> **SDK versions**
>
> `languageCode` needs Abrova Auth SDK **0.3.0**: Flutter, iOS, Android, Web or React Native. With an older SDK the template language applies.

## Step 2: Write your own text

Open **Abrova Auth › Email templates**, pick the e-mail and the language, and edit:

| Field | What it does |
| --- | --- |
| `Sender name` | The name the e-mail comes from. Empty: your project’s name. The address stays noreply@abrova.ir. |
| `Reply-to address` | Where replies go, for example your support address. Empty: replies are not received. |
| `Subject` | Up to 150 characters, one line. |
| `Message` | Up to 2,000 characters of plain text. An empty line starts a new paragraph. |
| `Button text` | The words on the button, up to 40 characters. |
| `Button colour` | Your brand colour for the button, for example #ff6600. The text on it turns black or white, whichever reads better. Empty: Abrova blue. |

Use these placeholders in the subject and the message:

| Placeholder | Becomes |
| --- | --- |
| `%APP_NAME%` | Your project’s name |
| `%EMAIL%` | The user’s e-mail address |
| `%EXPIRES%` | How long the link works, in the e-mail’s language: 15 minutes, 24 hours, ۷ دقیقه |

The built-in message ends with “The link works once and expires in %EXPIRES%. If you did not ask for this, ignore this e-mail.” Reword it or remove it.

## Step 3: Choose how long each link works

Set it next to each e-mail, in minutes. It applies to both languages, and %EXPIRES% always shows the real value.

| E-mail | Default | Allowed |
| --- | --- | --- |
| `Magic link` | 15 minutes | 5 to 60 minutes |
| `Password reset` | 30 minutes | 5 to 60 minutes |
| `Confirm e-mail` | 24 hours | 1 hour to 7 days |

At least 5 minutes, because an e-mail can take a minute or two to arrive. A magic link or a reset link works for at most an hour, because a stolen one signs someone in or changes their password. Every link still works only once, and a new link cancels the older ones.

The preview shows the e-mail exactly as it will be sent. **Use the built-in text** goes back to Abrova's text for that e-mail and language.

## What stays the same

Below your message, Abrova always adds the button and the link written out (for e-mail apps that hide buttons). They can't be removed, so an edited e-mail always keeps a working, visible link. The message is plain text, not HTML, and the e-mail comes from [noreply@abrova.ir](mailto:noreply@abrova.ir) with your sender name.

## Next steps

- [Magic link](https://abrova.ir/docs/auth/magic-link)
- [E-mail and password](https://abrova.ir/docs/auth/email-password)
