Nuxt Nation カンファレンスが開催されます。11月12日~13日にご参加ください。

nodemailer
nuxt-nodemailer

NodemailerのNuxt統合

nuxt-nodemailer

npm versionnpm downloadsLicenseNuxtVolta

Buy me a coffee

Nuxt3にnodemailerを追加します

このモジュールは、Nuxt3のサーバーサイドからのみメールを送信するために使用できます。

機能

  • サーバーコンポーザブル useNodeMailer() を自動インポート
  • from 引数を継承する sendEmail() を追加
  • nodemailer のオリジナルインスタンスを公開
  • 設定に環境変数を使用

インストール

# 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

設定

nuxt.config.jsmodules セクションに nuxt-nodemailer を追加します。

設定はnodemailerと同じオプションを使用します。詳細はこちら

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: '',
    },
  },
}

環境変数

パスワードなどの機密情報には、環境変数を使用することをお勧めします。

nodemailer 設定の各オプションは、環境変数を使用して上書きできます。NUXT_NODEMAILER_ のプレフィックスを付け、大文字にする必要があります。

たとえば、auth.passfrom オプションを上書きするには、次の環境変数を使用します

NUXT_NODEMAILER_AUTH_PASS=yourpassword
NUXT_NODEMAILER_FROM="..."

警告: nuxt.config.js ファイルの nodemailer 設定に存在するオプションのみ上書きできます。

使用方法

サーバーイベントハンドラーで、useNodeMailer コンポーザブルを使用してメールを送信できます。

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

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

sendMail を使用すると、設定から from 引数を自動的に継承するため、毎回指定する必要がないという利点があります。

設定オプションを使用して transport を使用することも、nodemailer インスタンスを使用して新しいtransportを作成することもできます。

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

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

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