nuxt-mail
nuxt-mail
Nuxt.jsアプリにメール送信機能を追加します。サーバールートと注入可能な変数を追加し、nodemailerを使用してメールを送信します。
このモジュールはサーバールートを作成するため、静的サイト(nuxt generate
経由)では機能しません。
インストール
# npm
$ npx nuxi module add nuxt-mail
# Yarn
$ yarn nuxi module add nuxt-mail
構成
nuxt.config.js
のmodules
配列にモジュールを追加します。buildModules
ではなくmodules
に追加することに注意してください。そうしないと、サーバールートは生成されません。
// nuxt.config.js
export default {
modules: [
['nuxt-mail', {
message: {
to: 'foo@bar.de',
},
smtp: {
host: "smtp.example.com",
port: 587,
},
}],
],
// or use the top-level option:
mail: {
message: {
to: 'foo@bar.de',
},
smtp: {
host: "smtp.example.com",
port: 587,
},
},
// or use runtimeConfig
runtimeConfig: {
mail: {
message: {
to: 'foo@bar.de',
},
smtp: {
host: "smtp.example.com",
port: 587,
},
},
},
}
smtp
オプションは必須であり、直接nodemailer
に渡されます。利用可能なオプションについては、そのドキュメントを参照してください。また、message
設定を介して、少なくともto
、cc
、またはbcc
を渡す必要があります。これにはセキュリティ上の理由があり、クライアントはSMTPサーバーから任意の受信者にメールを送信できません。message
設定を使用してメッセージを事前に構成できます。そのため、常に同じ件名または送信元アドレスでメールを送信したい場合は、ここで構成できます。
このモジュールは、電子メールの送信に使用される$mail
変数を注入します。
ヌクスト3
構成可能経由
<script setup>
const mail = useMail()
mail.send({
from: 'John Doe',
subject: 'Incredible',
text: 'This is an incredible test message',
})
</script>
注入可能な変数経由
<script setup>
const { $mail } = useNuxtApp()
$mail.send({
from: 'John Doe',
subject: 'Incredible',
text: 'This is an incredible test message',
})
</script>
オプションAPI経由
<script>
export default {
methods: {
sendEmail() {
this.$mail.send({
from: 'John Doe',
subject: 'Incredible',
text: 'This is an incredible test message',
})
},
},
}
</script>
ヌクスト2
ヌクスト2の場合は、@nuxtjs/axios
をインストールして、nuxt-mail
の前にモジュールリストに追加する必要があります。
// nuxt.config.js
export default {
modules: [
[
'@nuxtjs/axios',
['nuxt-mail', { /* ... */ }],
}],
],
}
その後、このように注入された変数を使用できます。
<script>
export default {
methods: {
sendEmail() {
this.$mail.send({
from: 'John Doe',
subject: 'Incredible',
text: 'This is an incredible test message',
})
},
},
}
</script>
本番環境の使用に関する注意事項
本番環境でnuxt-mail
を使用し、ドメインの背後にローカルホストを隠すリバースプロキシを構成した場合、@nuxt/axios
に使用している基本URLを通知する必要があります。そうしないと、nuxt-mail
は送信ルートを見つけられません。その方法については、@nuxt/axiosオプション
を参照してください。最も簡単なオプションは、API_URL
環境変数を設定するか、nuxt.config.js
で何かを設定することです。
// nuxt.config.js
export default {
axios: {
baseURL: process.env.BASE_URL,
},
}
複数のメッセージ構成
message
構成を配列に変更することで、複数のメッセージ構成を提供することもできます。
// nuxt.config.js
export default {
modules: [
['nuxt-mail', {
message: [
{ name: 'contact', to: 'contact@foo.de' },
{ name: 'support', to: 'support@foo.de' },
],
...
}],
],
}
その後、このように構成を参照できます。
mail.send({
config: 'support',
from: 'John Doe',
subject: 'Incredible',
text: 'This is an incredible test message',
})
またはインデックス経由(この場合、name
プロパティは必要ありません)
mail.send({
config: 1, // Resolves to 'support'
from: 'John Doe',
subject: 'Incredible',
text: 'This is an incredible test message',
})
また、このモジュールはサーバールートを作成するため、静的サイト(nuxt generate
経由)では機能しません。
一般的なメールサービスの設定
Gmail
SMTPサーバーにログインするには、アプリ固有のパスワード
を設定する必要があります。次に、次の構成をnuxt-mail
構成に追加します。Gmailの構成には複数の方法があるようなので、オプションを試してみるのが最善です。
// nuxt.config.js
export default {
modules: [
['nuxt-mail', {
smtp: {
service: 'gmail',
auth: {
user: 'foo@gmail.com',
pass: '<app-specific password>',
},
},
}],
],
}
// nuxt.config.js
export default {
modules: [
['nuxt-mail', {
smtp: {
host: "smtp.gmail.com",
port: 587,
auth: {
user: 'foo@gmail.com',
pass: '<app-specific password>',
},
},
}],
],
}
足りないものがありますか?このサービスをプルリクエスト
を介して追加してください。
メールエラーのデバッグ
メールが送信されない場合は、ブラウザ開発者ツールを使用してエラーをデバッグできます。500
エラーがスローされた場合(コンソール出力を確認する)、ネットワークタブでエラーメッセージを確認できます。Chromeユーザの場合は、ネットワークタブを開き、「send」リクエストを見つけてください。それを開き「レスポンス」タブを選択してください。エラーメッセージが表示されているはずです。ほとんどの場合、SMTPサーバでの認証に関連しています。
オープンな質問
「証明書チェーン内の自己署名証明書」エラー
上記エラーがスローされる問題があります。誰かわかりやすい解決策を知っていたら、歓迎します😍。
貢献
何か不足しているものや貢献したいものがありますか?お気軽に、issueまたはプルリクエストを送信してください!⚙️
サポート
こんにちは、フリーランスのウェブ開発者であるSebastian Landwehrです。私はウェブアプリやオープンソースパッケージの開発が大好きです。パッケージの最新化を続け、より役立つツールを作成できるようにサポートしていただける場合は、ここで寄付できます。
一度限りの寄付を送信したい場合。コーヒーはとてもおいしいです😊。
PayPalが気に入っている場合にも一度限りの寄付が可能です。
ここでは定期的にサポートしていただけます。これは、私が着実にプロジェクトに取り組むのに最適です。
サポートありがとうございます!❤️
こちらもご覧ください
- nuxt-route-meta: ビルド時にNuxtページデータをルートメタに追加します。
- nuxt-modernizr: Nuxt.jsアプリにModernizrビルドを追加します。
- nuxt-mermaid-string: ダイアグラム文字列を提供することにより、Nuxt.jsアプリにマーメイドダイアグラムを埋め込みます。
- nuxt-content-git: git履歴に基づいてcreatedAtおよびupdatedAtの日付を置き換えるか追加する、@nuxt/contentの追加モジュール。
- nuxt-babel-runtime: babelをサポートするNuxt CLI。@nuxt/typescript-runtimeに触発されています。