Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

React

【React】nodemailerでメール送信機能を実装する|ポートフォリオサイトの作り方

動画で解説を見る



開発環境

  • Visual Studio Code:version 1.73.0
  • OS:Windows10
  • Node.js:v18.14.0
  • npm:9.3.1
  • react:18.2.0
  • react-dom:18.2.0
  • react-router-dom:6.8.2
  • typescript:4.9.5
  • mui:5.11.10
  • mui/icons-material:5.11.11
  • chart.js:4.4.0
  • react-chartjs-2:5.2.0
  • axios:1.5.0
  • cors:2.8.5
  • express:4.18.2
  • nodemailer:6.9.5

Reactでnodemailerを使ったメール送信の機能を実装する手順

Reactでnodemailerを使ったメール送信の機能を実装する手順について解説します。

nodemailerをインストールする

まずはnodemailerをインストールします。

そのほかにNode.jsのWebアプリケーションフレームワークである「Express.js」、HTTP通信を簡単に行えるJavaScriptのライブラリ「axios」、異なるドメイン内のリソースと通信するために「cors」をインストールします。

この4つのライブラリやフレームワークを組み合わせることにより、サーバーサイド側でメール送信を行える仕組みを作っていきます。

nodemailerの公式サイト:https://nodemailer.com/
axiosの公式サイト:https://axios-http.com/ja/
Express.jsの公式サイト:https://expressjs.com/ja/

サーバーサイドでメール送信機能を実装する

次にサーバーサイドでメール送信機能を実装していきます。

上記は「/send-mail」のリクエストされた場合にポート番号「3001」で処理を実行する形になっています。

今回は一番利用率が高いであろう「Gmail」で実装していますが、「メールアドレス」と「アプリパスワード」はご自身のアカウントに差し替えてください。

「SendMailOptions」はユーザーに送信する内容、「ReceiveMailOptions」は運営側に通知する内容になっています。

ここまでの処理ができていれば、下記のコマンドでサーバーサイドが立ち上がるかを確認してみてください。

「サーバがポート 3001 で起動しました。」と表示が出ていれば実装は完了です。

お問い合わせフォームの処理を修正する

最後にお問い合わせフォームの処理を修正していきます。

HTTP送信をするために「axios」をインポートしています。

また、お問い合わせフォームを作成するために使用していたsleep関数は不要なので削除しておきます。

31行目から34行目でaxiosライブラリを使用してHTTP リクエストメソッドは「POST」、リクエストURLは「http://localhost:3001/send-mail」、HTTPリクエストボディに「emailとmessage」を渡してサーバーサイド側にHTTPリクエストを送っています。

以上でメール送信の実装は完成です。

おわりに

Reactでnodemailerを使ったメール送信の機能を実装する手順を解説してきましたが、いかがだったでしょうか。

Reactはクライアントサイドのライブラリなのでメール送信はサーバーサイド側で操作する必要がありますが、メール送信用のAPIを提供している「SendGrid」「Mailgun」「Amazon SES」「EmailJS」などを利用すればサーバーサイドの構築は不要になります。

是非、メール送信をするための仕組みをどのようにするべきか、ご参考にしていただければと思います。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-React