> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 検証、マジックリンク、OTP、およびダブルオプトインメッセージを送信する

> ワンタイムパスワード、マジックリンク、ダブルオプトインフローを含む、OneSignalを使用したメールおよびSMS検証メッセージの例とテンプレートおよびAPI例。

アカウント認証、新しいユーザー/パスワードの登録、またはトランザクションの確認が必要な場合でも、ワンタイムパスワード、マジックリンク、または登録URLを誰かに送信するだけで済むことがあります。メール検証は良い例であり、偽のメールアドレスや非アクティブなメールアドレスを防ぐ方法です。このガイドに従うことで、ユーザーが送信したメールを実際に受信できるようにし、送信者の評判と配信可能性も向上させることができます。

## 要件

* OTPまたは確認コードを生成して送信するサーバー。

## APIを介して`custom_data`を送信する

[メッセージ作成API](/reference/create-message)には`custom_data`プロパティがあり、サーバーからメッセージにデータを渡すために使用できます。

確認コード、マジックリンク、またはカスタムURLを生成する方法に応じて、生成後、ユーザーにメッセージを送信するときに`custom_data`オブジェクトに渡すことができます。例：

<CodeGroup>
  ```Text JSON theme={null}
  "custom_data": {
      "user": {
          "first_name": "George"
      },
      "verify": {
          "URL" : "https://yourdomain.com/users/confirm?confirmation_token=OS4EVA",
          "otp" : "OS4EVA"
      }
  }
  ```
</CodeGroup>

## 検証メールテンプレート

このメールテンプレートの例では、ユーザーの名前、ワンタイムパスコード、およびメールアドレスを確認するためのリンク付きボタンを表示する方法を示します。

<Frame caption="検証メールの例">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e653d20-Screenshot_2023-08-28_at_3.07.09_PM.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=8633ab043badb9bf58acb90ef326052c" alt="" width="649" height="729" data-path="images/docs/e653d20-Screenshot_2023-08-28_at_3.07.09_PM.png" />
</Frame>

### メールテンプレートの設定

**メッセージ > テンプレート > 新しいメールテンプレート**に移動し、**ドラッグ&ドロップエディター**を使用します。

1行を作成し、次のブロックをドラッグします：

* **タイトル**ブロック
* **段落**ブロック
* **ボタン**ブロック

<Frame caption="ドラッグアンドドロップエディターの例">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/eaf02d3-Screenshot_2023-08-28_at_2.46.21_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=bebf50444f6d7733961279be58712871" alt="" width="859" height="209" data-path="images/docs/eaf02d3-Screenshot_2023-08-28_at_2.46.21_PM.png" />
</Frame>

### メールにユーザーの名前を表示する

これはオプションですが、ユーザーの名前を追加することで、メッセージをよりパーソナライズできます。名前がない場合は、省略するかデフォルトを設定できます。

テンプレートの**タイトル**ブロック内で、必要に応じてコピーを設定します。例：

```
Hey {{ message.custom_data.user.first_name | default: "there" }},
```

### メールにワンタイムパスワードを表示する

この例は、ワンタイムパスワードを送信するオプションと確認URLを含むボタンの両方を示しています。設定方法に応じて、**段落**ブロック内に必要に応じてコピーを設定します。例：

```
To join the squirrel crew, verify your email with the One Time Password:
{{message.custom_data.verify.otp}}

Or use the link below!
```

パスワードをテキストよりも大きくまたは区別したい場合は、複数の**段落**または**テキスト**ブロックを使用できます。この例では、太字にしました：

<Frame caption="メールコンテンツ内で太字でスタイル設定されたOTP">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/f534afb-Screenshot_2023-08-28_at_3.05.35_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=9ebc5e94bdc7afad54e0a39ffd994f0f" alt="" width="566" height="199" data-path="images/docs/f534afb-Screenshot_2023-08-28_at_3.05.35_PM.png" />
</Frame>

### メールにカスタムURLを追加する

検証URLを設定する方法はいくつかあります。この例では、確認コードを含む完全なURLを`custom_data`に渡します。

**ボタン**ブロック > コンテンツプロパティ > アクション > Urlで、次のように設定します：

* `{{message.custom_data.verify.URL}}`

<Frame caption="ボタンブロックのカスタムURL設定">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/075aacf-Screenshot_2023-08-28_at_3.06.14_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=34a80930c78a39d662dcf787677e565f" alt="" width="1185" height="624" data-path="images/docs/075aacf-Screenshot_2023-08-28_at_3.06.14_PM.png" />
</Frame>

## メールテンプレートを更新してメッセージを送信する

テンプレートのカスタマイズの詳細については、[ドラッグアンドドロップでメールをデザインする](./design-emails-with-drag-and-drop)を参照してください。

API リクエストJSON の例：

<CodeGroup>
  ```Text JSON theme={null}
  {
      "include_email_tokens": [
          "Email Address"
      ],
      "app_id": "YOUR_APP_ID",
      "template_id": "YOUR_TEMPLATE_ID",
      "custom_data": {
          "user": {
              "first_name": "George"
          },
          "verify": {
              "URL" : "https://yourdomain.com/users/confirm?confirmation_token=OS4EVA",
              "otp" : "OS4EVA"
          }
      }
  }
  ```
</CodeGroup>

<Check>
  準備ができたら、[通知の作成](/reference/create-message)APIリクエスト内で`custom_data`プロパティとともに`template_id`を使用できます。
</Check>

## 検証SMSテンプレート

このSMSテンプレートの例では、ワンタイムパスコードを表示する方法を示します。

### SMSテンプレートの設定

SMSは、料金を削減するために限られた量のデータのみで送信する必要があります。

**メッセージ > テンプレート > 新しいSMSテンプレート**に移動します。

テンプレートに`OTPテンプレート`のような覚えやすい名前を付けます。

### SMSテンプレートにOTPを表示する

テンプレートの**メッセージ**フィールドに、次のコピーを追加します：

* `{{message.custom_data.verify.otp}} is your OneSignal verification code.`

「OneSignal」をアプリの名前に変更することをお勧めします。

### SMSテンプレートを更新してメッセージを送信する

テンプレートを作成したら、ワンタイムパスワードを生成し、次のAPI リクエストJSON の例を使用してOneSignalに渡すことができます：

<CodeGroup>
  ```Text JSON theme={null}
  {
      "include_phone_numbers": ["+19999999999"],
      "app_id": "YOUR_APP_ID",
      "template_id": "YOUR_TEMPLATE_ID",
      "custom_data": {
          "verify": {
              "otp" : "OS4EVA"
          }
      }
  }
  ```
</CodeGroup>

<Check>
  準備ができたら、[通知の作成](/reference/create-message)APIリクエスト内で`custom_data`プロパティとともに`template_id`を使用できます。
</Check>

## メールダブルオプトインの設定

ダブルオプトインは、メールリストの品質を向上させ、規制に準拠するために、ユーザーにメールサブスクリプションを確認するように要求するプロセスです。

### 1. OneSignalにメールアドレスを追加する

OneSignalにメールアドレスを追加すると、デフォルトで自動的にサブスクライブされます。ただし、ダブルオプトインの場合は、メールで送信された検証リンクをクリックするまで、[ユーザー作成APIを介してユーザーを追加](/reference/create-user)しないでください。

### 2. 検証メールを送信する

OneSignalでは、[通知作成API](/reference/create-message)を使用して、受信者に検証メールを送信できます。エンドポイントは、メールを送信し、アプリにまだ存在しない場合は、メールサブスクリプションとしてアドレスをOneSignalに追加します。

#### APIエンドポイント：検証メールを送信する

* [通知作成エンドポイント](/reference/create-message)を利用して、受信者に[検証メール](./example-verification-magic-link-otp)を作成して送信します。

### 3. 検証応答の処理

検証リンクに対する受信者の応答に応じて、次の手順に従います：

**非サブスクライバーの場合**

1. [通知作成API](/reference/create-message)を介して、カスタムデータ通知でメール受信者をターゲットにします。
2. ユーザーが検証リンクをクリックした場合は、APIの「[ユーザーの作成](/reference/create-user)」エンドポイントを使用して、サブスクリプションとして追加します。

**既存のサブスクライバーの場合**

1. 既存のサブスクライバーを個別に検証メールでターゲットにします。
2. 事前定義された期間にわたって、検証リンクに対する受信者の応答を監視します。

**応答しない場合**

* APIを介して、配信停止するために[サブスクリプションを更新](/reference/update-subscription)するか、[完全に削除](/reference/delete-subscription)します。

**検証リンクをクリックした場合**

* 何もしません - すでにOneSignalにサブスクライブされています。

### 要約すると、OneSignalでダブルオプトインを設定するには、次の手順が含まれます：

#### 現在オーディエンスにないメールアドレスの場合

1. APIを介して受信者に検証メールを送信します。
2. 受信者が検証リンクをクリックした場合は、「ユーザーの作成」APIエンドポイントを使用してサブスクリプションを作成します。

#### すでにOneSignalにあるメールアドレスの場合

1. APIを介して既存のサブスクライバーに検証メールを送信します。
2. 検証リンクへの応答を監視します。
3. 指定された期間内に応答しない場合は、サブスクリプションを更新して配信停止するか、削除します。
4. 検証リンクをクリックした場合は、すでにサブスクライブされているため、何もしません。

これらの手順に従うことで、コンプライアンスを確保し、高品質のメールリストを維持しながら、メールサブスクリプションプロセスでダブルオプトイン機能を効果的に実装できます。

***
