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" <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
インスタンスを使用して新しいtransportを作成することもできます。
export default defineEventHandler(() => {
const { transport, nodemailer } = useNodeMailer()
// you can create a new transport
return nodemailer.createTransport(...)
// or use the existing one
return transport.sendMail(...)
})