nodemailer
nuxt-nodemailer

nodemailer 的 Nuxt 整合

nuxt-nodemailer

npm versionnpm downloadsLicenseNuxtVolta

Buy me a coffee

將 nodemailer 新增到 Nuxt3

此模組僅可在 Nuxt3 的伺服器端用於傳送電子郵件。

功能

  • 自動匯入伺服器組合式函式 useNodeMailer()
  • 新增 sendEmail(),它繼承 from 引數
  • 公開 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-nodemailer 新增到您的 nuxt.config.jsmodules 部分。

該配置使用與 nodemailer 相同的選項,您可以在此處找到它們

export default {
  modules: [
    'nuxt-nodemailer'
  ],
  nodemailer: {
    from: '"John Doe" <[email protected]>',
    host: 'smtp.mailtrap.io',
    port: 465,
    secure: true,
    auth: {
      user: '[email protected]',
      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: '[email protected]' })
})

使用 sendMail 的好處是它會自動繼承配置中的 from 引數,您無需每次都指定它。

您還可以使用帶有配置選項的 transport,或者直接使用 nodemailer 例項建立全新的傳輸。

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

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

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