---
title: "Password reset email template"
description: "A reset email with one button, a link to paste and a clear expiry. Send it when someone asks to reset their password."
url: "https://nextmail.sh/email-templates/password-reset"
---

[Templates](https://nextmail.sh/email-templates.md)[Accounts and access](https://nextmail.sh/email-templates.md#account)

# Password reset email template

A reset email with one button, a link to paste and a clear expiry.

[Use this template](https://nextmail.sh/mail/templates?starter=password-reset) [Use this template](https://nextmail.sh/signup.md?next=%2Fmail%2Ftemplates%3Fstarter%3Dpassword-reset)[Customize with AI](https://nextmail.sh/email-templates/generate.md?starter=password-reset)

- **From**
  Northwind <hello@example.com>
- **Subject**
  Reset your Northwind password
- **Preview text**
  Reset your Northwind password

![Preview of the Password reset template](https://nextmail.sh/email-templates/previews/password-reset-desktop.webp?v=b79c43c60f5e)

password-reset.txt

```
Reset your {{productName}} password

{{productName}}

Reset your password

Hi {{firstName}},

Use the button below to choose a new password for your {{productName}} account.

Choose a new password [{{resetUrl}}]

Or paste this link into your browser:

{{resetUrl}}

This link expires in {{expiryMinutes}} minutes and can be used once. If you did not ask to reset your password, ignore this email and nothing will change.

Sent because a password reset was requested for this address. Nobody at {{productName}} will ever ask you for this link.
```

Shown with sample values. The HTML and plain-text tabs keep the placeholders.

About

## When to send it

Send it when someone asks to reset their password. The button and the pasteable link lead to the same place, the expiry is given in minutes, and the last line tells anyone who did not ask that nothing will change.

5 values to fill

## What each send fills in

Required values have to come with every send. The rest fall back to the default shown here.

| Placeholder | Kind | Required | Default |
| --- | --- | --- | --- |
| `{{resetUrl}}` | Link | Required | None |
| `{{firstName}}` | Text | Optional | there |
| `{{expiryMinutes}}` | Text | Optional | 60 |
| `{{unsubscribeUrl}}` | Link | Optional | None |
| `{{productName}}` | Text | Optional | Nextmail |

API

## Send it from your code

Create a template from this design once, then send it with the values for each message.

```
import { init, nextmail } from '@nextmail/sdk' init({ apiKey: process.env.NEXTMAIL_API_KEY }) await nextmail.templates.create({  name: 'Password reset',  slug: 'password-reset',  starter: 'password-reset',  publish: true,}) const sent = await nextmail.templates.send('password-reset', {  from: 'Northwind <hello@example.com>',  to: 'maya@example.com',  props: {    firstName: 'Maya',    resetUrl: 'https://example.com/reset/8f2c',  },  slots: { productName: 'Northwind' },}) console.log(sent.id, sent.status)
```

Accounts and access

## More templates like this

![Preview of the Welcome template](https://nextmail.sh/email-templates/previews/welcome-desktop.webp?v=d019166ec823)

### Welcome

A sign-up welcome with a short greeting, one button to get started and the link written out underneath.

6 styles

![Preview of the Welcome card template](https://nextmail.sh/email-templates/previews/welcome-card-desktop.webp?v=c0e1333fb3f4)

### Welcome card

A compact welcome in a card, with one button back into the product.

6 styles

![Preview of the Verification code template](https://nextmail.sh/email-templates/previews/verify-code-desktop.webp?v=b83bbba1232b)

### Verification code

A one-time code set large enough to read from another screen.

6 styles

![Preview of the Magic link template](https://nextmail.sh/email-templates/previews/magic-link-desktop.webp?v=349060a0f7ee)

### Magic link

Passwordless sign-in with one button and the link printed as text.

6 styles

Start from one

## Pick a design, change anything, and send it from your code.

Every template opens in the editor as blocks you can move, restyle or delete, and sends through the API with the values filled in.

[Open mail](https://nextmail.sh/mail/inbox) [Get Started](https://nextmail.sh/signup.md)[How templates work](https://nextmail.sh/features/templates.md)
