目次

    こんにちは、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は、ユーザーが登録する際のハンドリングを行います。


    コードについて説明させていただきます

    1. 環境変数のチェック: メール送信に必要なGmailのユーザー名とパスワードが設定されているか確認します。設定されていない場合、サーバーエラーを返します。

    2. リクエストボディからのメールアドレス取得: ユーザーから送信されたメールアドレスを取得します。メールアドレスが未提供の場合、エラーメッセージを返します。

    3. ドメインバリデーション: ユーザーが入力したメールアドレスのドメインが許可されているか確認します。許可されていない場合、エラーメッセージを返します。

    4. 検証コードの生成: ユーザー登録のための検証コードを生成します。

    5. メール送信オプションの設定: 送信者、受信者、件名、本文を含むメールオプションを設定します。

    6. メールの送信: transporterオブジェクトを使用してメールを送信し、成功した場合はユーザー情報をデータベースに保存します。送信に失敗した場合はエラーメッセージを返します。


    以上が、Node.jsを使用してNodemailerライブラリを用いたメール送信機能の実装方法です
    私は backend の勉強を始めたばかりなので、これからもよろしくお願いいたします!
    来月はまた面白いツールを紹介させていただきたいと思います。

    PREV
    2024.10.14
    GTM(Google Tag Manager)の有効活用について