将 nodemailer 添加到 Nuxt 3 和 4
此模块可用于仅从 Nuxt 3 和 4 的服务器端发送电子邮件。
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" <[email protected]>',
host: 'smtp.mailtrap.io',
port: 465,
secure: true,
auth: {
user: '[email protected]',
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: '[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(...)
})