Skip to content
Koltrix

Handling users who change their email address

Changing the email on an account is a small form and a big risk. How to verify the new address, warn the old one, keep a way back and update every system.

Koltrix Team6 min read
Wall of many differently colored drawers
Photo by KC Shum on Unsplash
On this page(7 sections)
  1. Why this flow is risky
  2. The flow, step by step
  3. 1. Ask for proof it is really the owner
  4. 2. Validate and normalize the new address
  5. 3. Do not change anything yet: verify the new address
  6. 4. Warn the old address
  7. 5. Offer a way back
  8. 6. Sign out other sessions
  9. 7. Confirm, then clean up
  10. What other systems need to know
  11. Mistakes to avoid
  12. If the person can no longer reach the old address
  13. A checklist before you ship
  14. Key takeaways

A customer changes jobs and wants their account to use a new email address. In your settings page this is one field and one button. Behind it sits one of the most sensitive actions in your product, because for most apps the email address is the key to the account: it receives password resets, magic links and security alerts. Whoever controls the address can take over the account.

This guide describes a safe flow for changing an email address, the emails it should send, and the other systems that need to hear about it. The aim is to make the honest case painless and the hostile case hard.

Why this flow is risky

  • An attacker with a stolen session can lock the owner out. If changing the address needs nothing more than being logged in, a hijacked session can swap in an attacker's address, then reset the password and finish the takeover.
  • A typo can lock the owner out. Switching to an address nobody can read leaves the account with no way to recover.
  • The old address often matters more than people think. It may still be the one in billing records, in support threads and on invoices.
  • Many systems hold a copy. Your payment provider, your support tool, your analytics and your marketing platform each have their own record of the address.

The flow, step by step

1. Ask for proof it is really the owner

Before accepting a change, confirm that the person in front of you is the account holder, not just a browser with a live session. The usual choices are the current password, a code from an authenticator app, or a fresh sign-in. If the person has no password because they use a magic link or Google sign-in, ask for a recent sign-in instead. Magic links vs email OTP covers the trade-offs in those flows.

2. Validate and normalize the new address

Check the syntax, trim spaces and compare using the same key you use at signup, so that [email protected] and [email protected] are treated as one address. Normalizing email addresses in your user table explains how. Then check that no other account already uses it. Be careful what the form says: answering "that address is already registered" lets anyone test whether a person has an account. A neutral message, with the real answer sent to the address's owner by email, is better. Email validation at signup has more on what to check and what to skip.

3. Do not change anything yet: verify the new address

Store the new address as pending, and email a confirmation link or code to it. The account keeps working with the old address until the new one is confirmed. This catches typos, and it proves the person controls the new mailbox.

Make the link:

  • single-use and tied to this account and this pending address,
  • short-lived, for example an hour,
  • confirmed only while the person is signed in or after a fresh sign-in, so a leaked link alone is not enough.

If the person starts another change before confirming, replace the pending address and cancel the older link.

4. Warn the old address

Send a message to the current address as soon as the change is requested, and again once it takes effect. It should say what is happening, when and from where, and offer a way to stop it:

We received a request to change the email on your account from [email protected] to [email protected], from a browser in Lisbon at 14:05 UTC. If this was you, no action is needed. If it was not, cancel it here and change your password.

The notice to the old address is the single most useful defence, because the real owner may be the only one who reads it in time.

5. Offer a way back

For a limited period after the change, for example 7 to 14 days, keep a revert link in the notice to the old address. Using it restores the old address, signs out all other sessions and asks for a password reset. Some products also delay the switch itself by a day or two for accounts holding valuable data, which gives the owner time to react.

6. Sign out other sessions

Once the new address is confirmed, end other sessions and refresh tokens, or at least ask the person if they want to. If a hostile session was involved, this closes it. Keep the current session alive so the person is not thrown out of the page they are on.

7. Confirm, then clean up

Send a confirmation to the new address ("Your email is now [email protected]"), and update the account. Record the change in an audit log: who, when, from where, the old and new address. The old address should not be reusable by a different account for a short time, so it cannot be claimed and used to receive leftover mail.

What other systems need to know

Updating your database is half the job. List every place the address is stored and decide how each is updated:

System What to do
Payment provider Update the customer email so receipts and failed-payment notices reach the right person.
Support tool or shared inbox Link the old and new addresses to one contact, so history stays together.
Marketing and newsletter lists Move the subscription and its consent record, or unsubscribe the old address and invite the new one. Do not carry consent over blindly.
Analytics and CRM Update the identity, keeping the internal ID stable.
Webhooks and integrations Send an event so subscribers can update their own copy.
Suppression lists Check the new address against it, and keep the old entry. See suppression list policy.

The cleanest approach is to give every account a stable internal ID and treat the email as an attribute that can change. Systems that key records on the address itself will break the first time someone changes it.

Mistakes to avoid

  • Changing the address immediately, with no verification. One typo and the owner is out.
  • Verifying only the new address. A hijacked session passes that test easily. Prove the owner, and warn the old address.
  • Sending the warning to the new address only. The attacker's mailbox will not raise an alarm.
  • Letting the old address reset the password after the change. After confirmation, reset emails must go to the new address.
  • Revealing whether an address is registered. Use neutral wording on forms.
  • Forgetting the invitation case. If a pending team invite was sent to the old address, decide whether it follows the person or is cancelled.
  • Using the email as the primary key. It will cause trouble the day someone changes jobs.

If the person can no longer reach the old address

This is common: the person left a company and lost the mailbox. They cannot approve a change from it. Provide a recovery path that checks identity in other ways, such as a signed-in session plus a code from an authenticator app, or a support process with clear identity checks. Verifying identity before account-access requests is a runbook for the support side. Resist shortcuts: this is exactly the path an attacker will try, so it should be slower than the normal one.

A checklist before you ship

  • The change needs proof of ownership, not only a signed-in session
  • The new address is verified before it replaces the old one
  • The old address gets a notice with a cancel or revert link
  • Other sessions end when the change is confirmed
  • The form does not reveal whether an address is already registered
  • The change is written to an audit log
  • Every connected system is updated, and accounts have a stable internal ID
  • There is a recovery path for people who lost the old mailbox
  • Notices and links expire, and are single-use

Key takeaways

  • An email change is an account-takeover path, so treat it with the care of a password change.
  • Verify the new address, warn the old one and keep a revert link for a while.
  • Do not tell strangers whether an address is registered.
  • End other sessions and update your payment, support and marketing systems.
  • Key accounts on an internal ID, not on the email address.

Start with Koltrix

Your domain, one inbox, and an API that sends.

A team inbox where AI sorts and drafts (nothing is sent without your click), plus the transactional API and SMTP relay your product sends with. 7 days free, no card.

SharePost on XLinkedIn