nuxt-nodemailer
將 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.js
的 modules
區段。
此配置使用與 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.pass
和 from
選項,您可以使用以下環境變數
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
實例建立全新的傳輸方式。
export default defineEventHandler(() => {
const { transport, nodemailer } = useNodeMailer()
// you can create a new transport
return nodemailer.createTransport(...)
// or use the existing one
return transport.sendMail(...)
})