TemplatesAccounts and access

Password reset email template

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

Use this templateUse this templateAll templates4 values to fillPlain-text part included
From
Northwind <[email protected]>
Subject
Reset your Northwind password
Preview text
Reset your Northwind password
Preview of the Password reset template
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.

Values

What each send fills in

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

PlaceholderKindRequiredDefault
{{resetUrl}}LinkRequiredNone
{{firstName}}TextOptionalthere
{{expiryMinutes}}TextOptional60
{{productName}}TextOptionalOpenEmail

API

Send it from your code

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

send-password-reset.ts
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const template = await openemail.templates.create({  name: 'Password reset',  starter: 'password-reset',  publish: true,}) const sent = await openemail.templates.send(template.slug, {  from: 'Northwind <[email protected]>',  to: '[email protected]',  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

Welcome

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

Preview of the Welcome card template

Welcome card

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

Preview of the Verification code template

Verification code

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

Preview of the Magic link template

Magic link

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

Preview of the Password reset card template

Password reset card

A reset email that names the account and says plainly that nothing has changed yet.

Preview of the Team invitation template

Team invitation

An invitation that names the person inviting, the workspace and the role on offer.

Preview of the New sign-in alert template

New sign-in alert

A sign-in notice with the time, device and place, so people can recognise themselves.

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.

Your inbox,
on your own terms.

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

OpenEmail

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

© 2026 OpenEmail. All rights reserved.