nuxt-nodemailer

nodemailer Nuxt Module
82,529 18
Install
npm install nuxt-nodemailer
Latest Version:1.1.4
Vue:3
License:MIT
Last Updated:Oct 23, 2025
Links: GitHub  ·  npm
Maintainer: kleinpetr

nuxt-nodemailer

npm version npm downloads License Nuxt Volta

Buy me a coffee

Adds nodemailer to the Nuxt 3 and 4

This module can be used to send emails only from the server-side in Nuxt 3 and 4.

Features

  • Auto import server composable useNodeMailer()
  • Add sendEmail() which inherits from argument
  • Expose nodemailer original instance
  • Using env variables for configuration

Install

# Using ni
ni -D nuxt-nodemailer nodemailer

# Using pnpm
pnpm add -D nuxt-nodemailer nodemailer

# Using yarn
yarn add --dev nuxt-nodemailer nodemailer

# Using npm
npm install --save-dev nuxt-nodemailer nodemailer

Configuration

Add nuxt-nodemailer to the modules sections of your nuxt.config.js.

the configuration uses the same options as nodemailer you can find them here

export default {
  modules: [
    'nuxt-nodemailer'
  ],
  nodemailer: {
    from: '"John Doe" <john@doe.com>',
    host: 'smtp.mailtrap.io',
    port: 465,
    secure: true,
    auth: {
      user: 'john@doe.com',
      pass: '',
    },
  },
}

Environment Variables

It's recommended to use environment variables for sensitive information like passwords.

each option in the nodemailer configuration can be overwritten using environment variables. It has to be prefixed with NUXT_NODEMAILER_ and in uppercase.

For example, to overwrite the auth.pass and from options you can use the following environment variables:

NUXT_NODEMAILER_AUTH_PASS=yourpassword
NUXT_NODEMAILER_FROM="..."

Warning: You can overwrite only existing options in the nodemailer configuration in the nuxt.config.js file.

Usage

In the server event handler, you can use the useNodeMailer composable to send emails.

export default defineEventHandler(() => {
  const { sendMail } = useNodeMailer()

  return sendMail({ subject: 'Nuxt + nodemailer', text: 'Hello from nuxt-nodemailer!', to: 'john@doe.com' })
})

the benefit of using sendMail is that it automatically inherits the from argument from the configuration and you don't have to specify it every time.

You can also use the transport with your config options or create brand new transport using nodemailer instance directly.

export default defineEventHandler(() => {
  const { transport, nodemailer } = useNodeMailer()

  // you can create a new transport
  return nodemailer.createTransport(...)

  // or use the existing one
  return transport.sendMail(...)
})

Related Packages

@goede/nuxt-mail-nightly

Adds email sending capability to a Nuxt.js app. Adds a server route, an injected...

1,180 15
nuxt-mail

Adds email sending capability to a Nuxt.js app. Adds a server route, an injected...

64,730 328
nuxt-lettermint

Nuxt module for sending emails with Lettermint

4,334 13
nuxt-content-git

Additional module for @nuxt/content that replaces or adds createdAt and updatedA...

5,479 25

Version History

Version Released License
1.1.4 MIT
1.1.2 MIT
1.1.1 MIT
1.1.0 MIT