目次
こんにちは、Benと申します!最近、ReactとNode.js、MongoDBを組み合わせて、フルスタックのWebアプリを作成して練習しています。ちょうどメールを送信するという要件があったので、今回はNode.jsでNodemailerというライブラリを使う方法を紹介します。
さっそくコードを見ていき、一行一行解説していきます。
環境設定
まず、必要なパッケージをインストールします。以下のコマンドを使用して、Nodemailerとdotenvをプロジェクトに追加します。
npm install nodemailer dotenv
.envファイルの設定
GmailのSMTPサーバーを使用してメールを送信するために、Gmailのアカウント情報を.env
ファイルに保存します。このファイルには次の内容が含まれます。
GMAIL_USER=your_email@gmail.com
GMAIL_PASS=your_email_password
コードの解説
以下が、ユーザー登録時にメールを送信するための実装コードです。
このセクションでは、Expressのリクエストとレスポンスをインポートし、
Nodemailerとdotenvを使用して環境変数を読み込みます。
次に、GmailのSMTPサーバーを使用するための設定を行います。
ユーザー登録ハンドラー
以下の関数httpHandleRegister
は、ユーザーが登録する際のハンドリングを行います。
コードについて説明させていただきます
環境変数のチェック: メール送信に必要なGmailのユーザー名とパスワードが設定されているか確認します。設定されていない場合、サーバーエラーを返します。
リクエストボディからのメールアドレス取得: ユーザーから送信されたメールアドレスを取得します。メールアドレスが未提供の場合、エラーメッセージを返します。
ドメインバリデーション: ユーザーが入力したメールアドレスのドメインが許可されているか確認します。許可されていない場合、エラーメッセージを返します。
検証コードの生成: ユーザー登録のための検証コードを生成します。
メール送信オプションの設定: 送信者、受信者、件名、本文を含むメールオプションを設定します。
メールの送信:
transporter
オブジェクトを使用してメールを送信し、成功した場合はユーザー情報をデータベースに保存します。送信に失敗した場合はエラーメッセージを返します。
以上が、Node.jsを使用してNodemailerライブラリを用いたメール送信機能の実装方法です
私は backend の勉強を始めたばかりなので、これからもよろしくお願いいたします!
来月はまた面白いツールを紹介させていただきたいと思います。