nuxt-nodemailer
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.js の modules セクションに nuxt-nodemailer を追加します。
設定は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(...)
})
