IBM Cloud Docs
E メールのカスタマイズ

E メールのカスタマイズ

アプリケーションと対話しているユーザーに、応答を送信したい場合や、検証を求めたい場合があります。 App ID には、対話に使用できるデフォルトのテンプレートが用意されています。 これらのテンプレートを基にして、ブランドに合ったメッセージングをカスタマイズすることもできます。

App ID 用途 SendGrid 郵便配達サービスとして。 すべての E メールは、単一の SendGrid アカウントを使用して送信されます。

E メール設定の構成

App ID では、 App ID デフォルトの認証情報を使用することができます。 SendGrid クレデンシャルを使用するか、独自の SendGrid アカウントを追加するか、独自のカスタムWebhookを設定してCloud Directoryのメールメッセージを送信します。

IBM デフォルト E メール・プロバイダーの使用

デフォルトでは、 App ID SendGrid を使用しています。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「E メール設定」**ページに移動します。

  2. **「デフォルト」**を選択します。 入力する必要のある情報が表示されます。

  3. 差出人情報を構成します。

    1. **「From」**に、ユーザーが受信する E メールの送信元 E メール・アドレスを入力します。

    2. **「Sender name」**に、「From」の E メールに関連付ける名前を入力します。

    3. **「Reply-to」**に、送信した E メールに誰かが返信する応答を受信する E メール・アドレスを入力します。

  4. **「Test」**をクリックして、テスト E メールで構成を試行します。

  5. **「Save」**をクリックして、構成を有効にします。

独自の SendGrid アカウントの追加

独自の SendGrid アカウントを使用して Cloud Directory の E メールを送信することにより、完全な制御が可能になります。 E メールの送信方法を決定し、独自のドメイン名を使用し、送信者の詳細を定義することができます。 カスタム E メール設定を使用すると、E メールがスパムとしてフィルター処理されてしまう可能性を減らす一方で、自分のアプリケーションのブランド認知度を高めることもできます。

E メール・プロバイダーへの直接接続は、E メールを開いているユーザーの数や、どのメッセージが配信されなかったかなど、個々のメッセージに関する情報を取得するのに役立ちます。 また、E メール・キャンペーンの管理の改善に使用できる全体的な統計情報を参照することもできます。

SendGrid アカウントをお持ちでない場合は、 登録します。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「E メール設定」**ページに移動します。

  2. **「SendGrid」**を選択します。 入力する必要のある情報が表示されます。

  3. **「SendGrid API key」**に、API キーを入力します。

  4. 差出人情報を構成します。

    1. **「From」**に、ユーザーが受信する E メールの送信元 E メール・アドレスを入力します。

    2. **「Sender name」**に、「From」の E メールに関連付ける名前を入力します。

    3. **「Reply-to」**に、送信した E メールに誰かが返信する応答を受信する E メール・アドレスを入力します。

  5. **「Test」**をクリックして、テスト E メールで構成を試行します。

  6. **「Save」**をクリックして、構成を有効にします。

E メール・プロバイダーのカスタマイズ

Cloud Directory の E メールを送信するための独自のカスタム拡張ポイントを定義することにより、完全な制御が可能になります。 E メールの送信方法を決定し、独自のドメイン名を使用し、送信者の詳細を定義することができます。 カスタム E メール設定を使用すると、E メールがスパムとしてフィルター処理されてしまう可能性を減らす一方で、自分のアプリケーションのブランド認知度を高めることもできます。

E メール・プロバイダーへの直接接続は、E メールを開いているユーザーの数や、どのメッセージが配信されなかったかなど、個々のメッセージに関する情報を取得するのに役立ちます。 また、E メール・キャンペーンの管理の改善に使用できる全体的な統計情報を参照することもできます。

GUI を使用したカスタム・プロバイダーの構成

サービス・ダッシュボードを使用して、カスタム・プロバイダーを構成することができます。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「E メール設定」**ページに移動します。

  2. **「カスタム」**を選択します。 入力する必要のある情報が表示されます。

  3. **「Web フック」**に、カスタム拡張 URL を入力します。

  4. いずれかの許可タイプを選択します。 以下のオプションから選択できます。

    • なし: Web フック・エンドポイントまたは URL には、許可ヘッダーは必要ありません。
    • 基本: Web フック・エンドポイントは、ユーザー名とパスワードの形式ですべての要求に対して HTTP 許可ヘッダーを必要とします。
    • 許可ヘッダー: Web フック要求では、エンドポイントの許可情報を HTTP 許可で渡す必要があります。 例えば、次のような OAuth 2.0 トークンを渡します: Authorization: Bearer eyJraWQiOiIyMDIwMDEyNTE2MzMiLCJhbGciOiJSUzI1NiJ9.eyJpYW1faWQiOiJJ
  5. 差出人情報を構成します。

    1. **「From」**に、ユーザーが受信する E メールの送信元 E メール・アドレスを入力します。

    2. **「Sender name」**に、「From」の E メールに関連付ける名前を入力します。

    3. 「Reply-to」 に、E メールへの応答を受信する E メール・アドレスを入力します。

  6. **「Test」**をクリックして、テスト E メールで構成を試行します。

  7. **「Save」**をクリックして、構成を有効にします。

API を使用したカスタム・プロバイダーの構成

Cloud Directory 管理APIを使用して、カスタムメール送信者を設定できます。

  1. POST 要求を listen できる拡張ポイントを構成します。 エンドポイントは以下のことが可能でなければなりません。

    • App ID からのペイロードを読み取る。
    • カスタム・プロバイダーからの E メールを送信する。
    • オプションで、App ID から返される JSON ペイロードが、第三者によっていかなる方法でも変更されていないことを検証する。 {"jws": "jws-format-string"} という形式のストリングが返されます。これには、テナント ID、JWS トークンの発行者、メッセージが送信されたときのタイム・スタンプ、固有トランザクション ID、および送信者の詳細と E メール本文の内容を含む実際のメッセージ情報が含まれています。

    拡張ポイントは以下の例のようになります。

    const sgMail = require('@sendgrid/mail');
    const {promisify} = require('bluebird');
    const request = promisify(require('request'));
    const jwtVerify = promisify(require('jsonwebtoken').verify);
    const jwtDecode = require('jsonwebtoken').decode;
    const jwkToPem = require('jwk-to-pem');
    
    async function obtainPublicKeys() {
       // Your instance tenant ID
       const tenantId = '<tenantID>';
    
       // Send request to App ID's public keys endpoint
       const keysOptions = {
       method: 'GET',
       url: `https://<region>.appid.cloud.ibm.com/oauth/v4/$<tenantID>/publickeys`
       };
       const keysResponse = await request(keysOptions);
       return JSON.parse(keysResponse.body).keys;
    }
    
    async function verifySignature(keysArray, kid, jws) {
       const keyJson = keysArray.find(key => key.kid === kid);
       if (keyJson) {
       const pem = jwkToPem(keyJson);
       await jwtVerify(jws, pem);
       return;
       }
       throw new Error ("Unable to verify signature");
    }
    
    async function verifyAndSendMail(jws) {
       // The API key for Sendgrid
       const sgApiKey = '<SengridApiKey>';
    
       // Init Sendgrind
       sgMail.setApiKey(sgApiKey);
    
       // Decode message to get information
       const data = jwtDecode(jws, {complete: true});
    
       // Extract kid from header
       const kid = data.header.kid;
    
       const keysArray = await obtainPublicKeys();
    
       // Verify the signature of the payload with the public keys
       await verifySignature(keysArray, kid ,jws);
    
       // Send the email with Your Sendgrid account
       const message = data.payload.message;
       const msg = {
       to: message.to,
       from: message.from.address,
       subject: message.subject,
       html: message.body,
       };
       console.log(`Sending email to ${message.to}`);
       let sendgridResponse = await sgMail.send(msg);
    
       return {result : 'email_sent',sendgridResponse};
    }
    
  2. /management/v4/<tenantID>/config/cloud_directory/email_dispatcher に PUT リクエストを行い、ウェブフック URL を提供する。 オプションで、許可情報を提供することができます。 サポートされる許可タイプには、Basic authorizationconstant authorization header value があります。

    curl -X PUT https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/config/cloud_directory/email_dispatcher' \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <IAMToken>' \
    -d '{
       "provider": "custom",
       "custom": {
       "url": "https://example.com/send_mail",
       "authorization": {
          "type": "basic",
          "username": "<username>",
          "password": "<password>"
          }
       }
       }'
    
  3. E メール・ディスパッチャーをテストして、構成が正しくセットアップされていることを確認します。 テストAPIを使用して、設定したカスタムメール送信者へのリクエストをトリガーします。

E メール・テンプレート

ユーザーにメッセージを送信する場合、以下のテンプレートの任意の組み合わせを使用できます。 あるいは、テンプレートを編集してメッセージをカスタマイズすることもできます。

また、以下のメッセージ・タイプに加えて、MFA テンプレートを利用することもできます。

さらにカスタマイズしたい場合は、メッセージの中でパラメーターを使用できます。 以下の表を参照して、すべてのメッセージ・タイプで使用できるパラメーターを確認してください。

ユーザーへのメッセージで使用できるパラメータ
パラメーター 説明
%{display.logo} ログイン・ウィジェットのために構成したイメージを表示します。
%{user.displayName} アプリとやり取りするときに使用する、ユーザーが選択した画面名を表示します。
%{user.email} ユーザーが登録した E メール・アドレスを表示します。
%{user.username} 認証方式がユーザー名とパスワードに設定されているとき、ユーザーが指定したユーザー名を表示します。
%{user.firstName} ユーザーが指定した名を表示します。
%{user.formattedName} ユーザーのフルネームを表示します。
%{user.lastName} ユーザーが指定した姓を表示します。

E メール: ようこそ

ユーザーがアプリケーションに登録するときに、アプリのウェルカム・メッセージをユーザーに送信することができます。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「ウェルカム・メール」**タブに移動します。

  2. **「ようこそ E メール (Welcome email)」「有効」**に設定します。

  3. メッセージの内容をカスタマイズします。 コンソールを使ってパラメータを追加したり、画像を挿入したりできる。 メッセージの 言語を 変更するには、 APIを使って言語を設定します。 ただし、メッセージの内容と変換については、ご自身の責任になります。 以下の表を参照して、このメッセージ、およびその他の送信できるすべてのメッセージで使用できるパラメーターのリストを確認してください。 パラメーターによってプルされた情報をユーザーが指定していない場合は、ブランクとして表示されます。

  4. 保存 をクリックします。

E メール: 検証

ユーザーが E メールを使用してアプリケーションに登録するとき、アイデンティティーの確認を求める E メールをユーザーに送信できます。 検証を要求することで、アプリに登録されるおそれのある偽アカウントの数を抑制します。 E メールをユーザーが検証するまでアプリへのアクセスを制限したり、プロファイルを作成するユーザーを管理する手段として E メール検証を利用したりできます。

App ID ダッシュボードまたはユーザー作成 API を使用して手動で追加したユーザーには、この E メールは自動送信されません。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「E メールの検証」**タブに移動します。

  2. **「E メール検証 (Email verification)」「有効」**に設定します。

  3. **「最初にユーザーの E メール・アドレスを検証せずに、ユーザーがアプリケーションにサインインできるようにする」「はい」**に設定します。 「はい」に設定すると、ユーザーは登録後に、まだ E メール・アドレスを検証していない状態で、アプリケーションと対話できるようになります。 デフォルト設定は「いいえ」です。

  4. メッセージの内容をカスタマイズします。 コンソールを使ってパラメータを追加したり、画像を挿入したりできる。 メッセージの 言語を 変更するには、 APIを使って言語を設定します。 ただし、メッセージの内容と変換については、ご自身の責任になります。 次の表を参照して、メッセージで使用できるさまざまなパラメーターを確認してください。 パラメーターによってプルされた情報をユーザーが指定していない場合は、ブランクとして表示されます。

    検証に関連するメッセージで使用できるパラメータ
    パラメーター 説明
    %{linkExpiration.hours} リンクが有効な時間数を表示します。
    %{linkExpiration.minutes} リンクが有効な分数を表示します。
    %{verify.code} ワンタイム検証 URL を表示します。
    %{verify.link} 設定で指定したアクション URL を表示します。

    ウェルカム・メッセージのセクションにリストされているメッセージ・パラメーターを使用することもできます。

  5. アクション URL の有効期限時間を定義します。 この URL の有効期間は分単位の時間であり、ユーザーは検証リンクが期限切れになる前にアクションを完了する必要があります。 この設定は、パスワード再設定リンクが有効である時間にも影響します。

  6. E メールをユーザーが検証した後に表示するページの URL を、**「Thank you ページの URL (Thank you page URL)」**ボックスに入力します。 このフィールドをブランクのままにしておくことを選択した場合は、App ID のデフォルト・ページが表示されます。

  7. 保存 をクリックします。

E メール: パスワードの再設定

ユーザーがアプリと対話するときに、パスワードを忘れている場合や、パスワードを更新する必要がある場合があります。 その要求に対する E メール応答をカスタマイズすることができます。 ユーザーがパスワードの変更を要求しても、ユーザーがこの E メール内のリンクをクリックするまでパスワードは変更されません。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「パスワードの再設定」**タブに移動します。

  2. **「パスワードを忘れた場合の E メール (Forgot password email)」「有効」**に設定します。

  3. メッセージの内容をカスタマイズします。 コンソールを使ってパラメータを追加したり、画像を挿入したりできる。 メッセージの 言語を 変更するには、 APIを使って言語を設定します。 ただし、メッセージの内容と変換については、ご自身の責任になります。 次の表を参照して、メッセージで使用できるさまざまなパラメーターを確認してください。 パラメーターによってプルされた情報をユーザーが指定していない場合は、ブランクとして表示されます。

    パスワード忘れに関するメッセージで使用できるパラメータ
    パラメーター 説明
    %{linkExpiration.hours} リンクが有効な時間数を表示します。
    %{linkExpiration.minutes} リンクが有効な分数を表示します。
    %{resetPassword.code} URL の一部としてワンタイム・パスコードを表示します。 ユーザーごとに異なるコードになります。 例: https://us-south.appid.cloud.ibm.com/wfm/verify/6574839563478
    %{resetPassword.link} パスワードをリセットするためにユーザーがクリックするリンクを表示します。

    ウェルカム・メッセージのセクションにリストされているメッセージ・パラメーターを使用することもできます。

  4. アクション URL の有効期限時間を定義します。 この URL の有効期間は分単位の時間であり、ユーザーは検証リンクが期限切れになる前にアクションを完了する必要があります。 この設定は、パスワード再設定リンクが有効である時間にも影響します。

  5. E メールをユーザーが検証した後に表示するページの URL を、**「パスワード再設定ページの URL (Reset password page URL)」**ボックスに入力します。 このフィールドをブランクのままにしておくことを選択した場合は、App ID のデフォルト・ページが表示されます。

  6. 保存 をクリックします。

E メール: パスワードの変更

パスワードが更新されたときにユーザーに通知することができます。 通知は、ユーザーがパスワードの変更を要求していなかった場合に役立ちます。 ユーザーは適切な手順に沿って、アカウントを再びセキュアにすることができます。

  1. サービスのダッシュボードで**「Cloud Directory」>「E メール・テンプレート」>「パスワードの変更 (Password change)」**タブに移動します。

  2. **「パスワードが変更された場合の E メール (Password changed email)」「有効」**に設定します。

  3. メッセージの内容をカスタマイズします。 コンソールを使ってパラメータを追加したり、画像を挿入したりできる。 メッセージの 言語を 変更するには、 APIを使って言語を設定します。 ただし、メッセージの内容と変換については、ご自身の責任になります。 次の表を参照して、メッセージで使用できるさまざまなパラメーターを確認してください。 パラメーターによってプルされた情報をユーザーが指定していない場合は、ブランクとして表示されます。

    パスワード変更に関するメッセージで使用できるパラメータ
    パラメーター 説明
    %{passwordChangeInfo.time} 新規パスワードが有効になった時刻を表示します。
    %{passwordChangeInfo.ipAddress} パスワード変更の要求元となった IP アドレスを表示します。

    ウェルカム・メッセージのセクションにリストされているメッセージ・パラメーターを使用することもできます。

  4. 保存 をクリックします。

サポートされる言語

言語管理APIを使用して、ユーザー・コミュニケーションを記述できる言語を設定できます。 ただし、すぐに使用できるのは英語だけです。 メッセージの変換については、ご自信の責任になります。 API を使用して構成を設定した後、テンプレート・テキストを変更できるように GUI が更新されます。

対応言語
コード 言語 リージョン
af-ZA アフリカーンス語 南アフリカ
sq-AL アルバニア語 アルバニア
am-ET アムハラ語 エチオピア
ar-DZ アラビア語 アルジェリア
ar-BH アラビア語 バーレーン
ar-EG アラビア語 エジプト
ar-IQ アラビア語 イラク
ar-JO アラビア語 ヨルダン
ar-KW アラビア語 クウェート
ar-LB アラビア語 レバノン
ar-LY アラビア語 リビア
ar-MR アラビア語 モーリタニア
ar-MA アラビア語 モロッコ
ar-OM アラビア語 オマーン
ar-QA アラビア語 カタール
ar-SA アラビア語 サウジアラビア
ar-SY アラビア語 シリア
ar-YE アラビア語 チュニジア
ar-AE アラビア語 アラブ首長国連邦
ar-YE アラビア語 イエメン
hy-AM アルメニア語 アルメニア
as-IN アッサム語 インド
az-AZ アゼルバイジャン語 アゼルバイジャン
eu-ES バスク語 スペイン
be-BY ベラルーシ語 ベラルーシ
bn-BD ベンガル語 バングラデシュ
be-BY ベラルーシ語 ベラルーシ
bn-BD ベンガル語 バングラデシュ
bn-IN ベンガル語 インド
bs-Latn-BA ボスニア語 ボスニア
bg-BG ブルガリア語 ブルガリア
my-MM ビルマ語 ミャンマー
ca-ES カタロニア語 スペイン
zh-Hans-CN 中国語 (簡体字) 中国
zh-Hans-SG 中国語 (簡体字) シンガポール
zh-Hant-HK 中国語 (繁体字) 中華人民共和国香港特別行政区
zh-Hant-MO 中国語 (繁体字) 中華人民共和国マカオ特別行政区
zh-Hant-TW 中国語 (繁体字) 台湾
hr-HR クロアチア語 クロアチア
cs-CZ チェコ語 チェコ共和国
da-DK デンマーク語 デンマーク
nl-BE オランダ語 ベルギー
nl-NL オランダ語 オランダ
en-AU 英語 オーストラリア
eu-BE 英語 ベルギー
en-CM 英語 カメルーン
eu-CA 英語 カナダ
en-GH 英語 ガーナ
eu-HK 英語 中華人民共和国香港特別行政区
en-IN 英語 インド
en-IE 英語 アイルランド
en-KE 英語 ケニア
en-MU 英語 モーリシャス
en-NZ 英語 ニュージーランド
en-NG 英語 ナイジェリア
en-PH 英語 フィリピン
en-SG 英語 シンガポール
en-ZA 英語 南アフリカ
en-TZ 英語 タンザニア
en-GB 英語 英国
en-US 英語 アメリカ合衆国
en-ZM 英語 ザンビア
en 英語
et-EE エストニア語 エストニア
fil-PH フィリピン語 フィリピン
fi-FI フィンランド語 フィンランド
fr-DZ フランス語 アルジェリア
fr-CM フランス語 カメルーン
fr-CD フランス語 コンゴ民主共和国
fr-BE フランス語 ベルギー
fr-CA フランス語 カナダ
fr-FR フランス語 フランス
fr-CI フランス語 象牙海岸 (コートジボアール)
fr-LU フランス語 ルクセンブルク
fr-MR フランス語 モーリタニア
fr-MU フランス語 モーリシャス
fr-MA フランス語 モロッコ
fr-SN フランス語 セネガル
fr-CH フランス語 スイス
fr-TN フランス語 チュニジア
gl-ES ガリシア語 スペイン
lg-UG ガンダ語 ウガンダ
ka-GE ジョージア語 ジョージア
de-AT ドイツ語 オーストリア
de-DE ドイツ語 ドイツ
de-LU ドイツ語 ルクセンブルク
de-CH ドイツ語 スイス
el-GR ギリシャ語 ギリシャ
gu-IN グジャラート語 インド
ha-NG ハウサ語 ナイジェリア
he-IL ヘブライ語 イスラエル
hi-IN ヒンディ語 インド
hu-HU ハンガリー語 ハンガリー
is-IS アイスランド語 アイスランド
ig-NG イボ語 ナイジェリア
id-ID インドネシア語 インドネシア
it-IT イタリア語 イタリア
it-CH イタリア語 スイス
ja-JP 日本語 日本
kn-IN カンナダ語 インド
kk-KZ カザフ語 カザフスタン
km-KH クメール語 カンボジア
rw-RW キンヤルワンダ語 ルワンダ
kok-IN コンカニー語 インド
ko-KR 韓国語 韓国
lo-LA リトアニア語 リトアニア
lv-LV ラトビア語 ラトビア
lt-LT クメール語 カンボジア
mk-MK マケドニア語 マケドニア
ms-Latn-MY マレー語ローマ字 マレーシア
ml-IN マラヤーラム語 インド
mt-MT マルタ語 マルタ
mr-IN マラーティー語 インド
mn-Cyrl-MN モンゴル語キリル文字 モンゴル
ne-IN ネパール語 インド
ne-NP ネパール語 ネパール
nb-NO ノルウェー語ブークモール ノルウェー
nn-NO ノルウェー語ニーノシュク ノルウェー
or-IN オリヤー語 (オディア語) インド
om-ET オロモ語 エチオピア
pl-PL ポーランド語 ポーランド
pt-AO ポルトガル語 アンゴラ
pt-BR ポルトガル語 ブラジル
pt-MO ポルトガル語 中華人民共和国マカオ特別行政区
pt-MZ ポルトガル語 モザンビーク
pt-PT ポルトガル語 ポルトガル
pa-IN パンジャブ語 インド
ro-RO ルーマニア語 ルーマニア
ru-RU ロシア語 ロシア
sr-Cyrl-RS セルビア語キリル文字 セルビア
sr-Latn-ME セルビア語ローマ字 モンテネグロ
sr-Latn-RS セルビア語ローマ字 セルビア
si-LK シンハラ語 スリランカ
sk-SK スロバキア語 スロバキア
sl-SI スロベニア語 スロベニア
es-AR スペイン語 アルゼンチン
es-BO スペイン語 ボリビア
es-CL スペイン語 チリ
es-CO スペイン語 コロンビア
es-CR スペイン語 コスタリカ
es-DO スペイン語 ドミニカ共和国
es-EC スペイン語 エクアドル
es-SV スペイン語 エルサルバドル
es-GT スペイン語 グアテマラ
es-HN スペイン語 ホンジュラス
es-MX スペイン語 メキシコ
es-NI スペイン語 ニカラグア
es-PA スペイン語 パナマ
es-PY スペイン語 パラグアイ
es-PE スペイン語 ペルー
es-PR スペイン語 プエルトリコ
es-ES スペイン語 スペイン
es-US スペイン語 アメリカ合衆国
es-UY スペイン語 ウルグアイ
es-VE スペイン語 ベネズエラ
sw-KE スワヒリ語 ケニア
sw-TZ スワヒリ語 タンザニア
sv-SE スウェーデン語 スウェーデン
ta-IN タミール語 インド
te-IN テルグ語 インド
th-TH タイ語 タイ
tr-TR トルコ語 トルコ
uk-UA ウクライナ語 ウクライナ
ur-IN ウルドゥー語 インド
ur-PK ウルドゥー語 パキスタン
uz-Cyrl-UZ ウズベク語キリル文字 ウズベキスタン
uz-Latn-UZ ウズベク語ローマ字 ウズベキスタン
vi-VN ベトナム語 ベトナム
cy-GB ウェールズ語 英国
yo-NG ヨルバ語 ナイジェリア
zu-ZA ズールー 南アフリカ