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" <[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(...)
})