LoginSignup
11
10

More than 3 years have passed since last update.

Reactでメール送信機能を実装する

Posted at

はじめに

Reactで、サーバレスでメール送信機能を追加する方法を紹介します。

環境/前提

<LABEL>-<MESSAGE> <LABEL>-<MESSAGE>
上記ライブラリがインストールされていること。

手順

今回は「EmailJS」というサービスを使って実装していきます。

EmailJSにサービス登録

image.png

アカウントを作成すると↓みたいなダッシュボードが確認できます。
image.png

「Add New Service」からサービスを作成できます。
作成した「Service ID」を使って、ReactからEmailJSのサービスを利用できます。

EmailJSにテンプレート登録

次にメールの雛形になるテンプレートを作成します。

image.png

「Create New Template」からサービスを作成できます。
image.png

ここで中括弧で宣言してある部分に、Reactからのパラメータを埋め込むことができます。
作成した「Template ID」を使って、ReactからEmailJSのサービスを利用できます。

ここまででEmailJS側の設定は完了です。

ライブラリインストール

EmailJS用のnpmパッケージをインストールします。

npm i emailjs-com

ReactからEmailJSを呼び出し

index.ts
  import { init,emailjs } from 'emailjs-com';

  function onclickSendMail(){
      // emailjsのUser_IDを使って初期化
      init(process.env.GATSBY_USER_ID);

      // 環境変数からService_IDとTemplate_IDを取得する。
      const emailjsServiceId = process.env.GATSBY_EMAILJS_SERVICE_ID;
      const emailjsTemplateId = process.env.GATSBY_EMAILJS_TEMPLATE_ID;

      // emailjsのテンプレートに渡すパラメータを宣言
      const templateParams = {
          from_name: emailName,
          message: emailText
      };

      // ServiceId,Template_ID,テンプレートに渡すパラメータを引数にemailjsを呼び出し
      emailjs.send(emailjsServiceId,emailjsTemplateId, templateParams).
      then(()=>{
        // do something
      });
  }

以上の手順でReactからサーバレスでメール送信をすることができます。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10