Send emails using NextAuth with SMTP
Prerequisites
Section titled “Prerequisites”Before you start, you'll need:
- A Resend API key
- A verified domain
Install
Install the NextAuth package.
npm npm install next-authyarn yarn add next-authpnpm pnpm add next-authbun bun add next-authThen, install the Nodemailer package.
npm npm install nodemaileryarn yarn add nodemailerpnpm pnpm add nodemailerbun bun add nodemailerConfigure SMTP credentials
Add your Resend SMTP crendentials in your application's
.envfile:.env EMAIL_SERVER_USER=resend EMAIL_SERVER_PASSWORD=YOUR_API_KEY EMAIL_SERVER_HOST=smtp.resend.com EMAIL_SERVER_PORT=465 EMAIL_FROM=onboarding@resend.devConfigure Email Provider
Finally, in your [...nextauth].js file (typically located in pages/api/auth), configure the Email provider with your SMTP settings:
index.ts import NextAuth from 'next-auth'; import EmailProvider from 'next-auth/providers/email'; import nodemailer from 'nodemailer'; export default NextAuth({ providers: [ EmailProvider({ server: { host: process.env.EMAIL_SERVER_HOST, port: process.env.EMAIL_SERVER_PORT, auth: { user: process.env.EMAIL_SERVER_USER, pass: process.env.EMAIL_SERVER_PASSWORD, }, }, from: process.env.EMAIL_FROM, }), // ... other providers as needed ], // ... any other NextAuth.js configs });