メールアドレス入力欄
Liferay DXP 2026.Q3+
メールアドレス欄は、フォームやAPI経由で入力されたメールアドレスを保存および検証します。 Objectsは保存前にすべての値を小文字に正規化し、特定のドメインをブロックしたり、オートコンプリート機能でドメインを提案するようにフィールドを設定できます。
メールアドレス欄を追加する
-
グローバルメニュー (
) を開き、 コントロールパネル → オブジェクト に移動します。 -
編集したいオブジェクト定義をクリックしてください。
-
フィールド タブに移動し、 追加 ボタン (
をクリックします。 -
ラベル と フィールド名 を入力してください。
-
フィールドタイプとして、 メールアドレス を選択してください。

-
言語ごとに別のメールアドレスを保存するには、 エントリ翻訳を有効にする をオンにします。 このオプションは、オブジェクト定義が公開された後は変更できません。
-
エントリに値を指定する必要がある場合は、 を有効にし、 を必須にします。
-
同じメールアドレスが 2 つ保存されるのを防ぐには、 一意の値のみを受け入れる をオンにします。 オブジェクト定義がドラフト段階であれば、これを変更できます。
-
をクリックして保存します。
保存すると、そのフィールドがオブジェクト定義のドラフトに追加されます。 フォームやAPIを通じてそのフィールドを利用できるようにするには、ドラフトを公開してください。 公開オブジェクトドラフト を参照してください。
ブロックするドメインやオートコンプリートの候補を設定するには、「フィールド」タブ内のフィールドをクリックし、フィールドパネルの「詳細」タブを開きます。 詳細オプション を参照してください。
検証と保存
Objectsは、値を保存する前に、入力されたすべてのメールアドレスを小文字に正規化します。 オブジェクト入力APIの応答では、値が入力または送信された際に使用された大文字小文字に関係なく、保存されている小文字の値を返します。
Objectsは、RFC 5321で定義されている254文字の上限をすべてのメールアドレスフィールドに適用するため、設定なしで制限が適用されます。
詳細オプション
メールアドレスフィールドの設定パネルにある「詳細設定」タブには、「読み取り専用」、「デフォルト値」、「ブロックされたドメイン」、「オートコンプリート」の4つのセクションがあります。 ブロックされたドメインとオートコンプリート機能は、メールアドレス入力欄に特有のものです。 ブロックされたドメインにはドメイン入力があり、オートコンプリートは オートコンプリートを有効にする をオンにした後でのみドメイン入力を表示します。

ドメインのブロック
ブロック対象ドメインのセクションを使用して、特定のドメインからのメールアドレスを拒否できます。
-
オブジェクト定義の フィールド タブで、編集するフィールドをクリックします。
-
詳細 タブに移動します。
-
ブロックされたドメインのセクションで、 ドメイン 入力欄にドメインを入力し(例:
@example.com)、Enter キーを押します。ドメインは入力欄の下のリストに表示されます。
-
をクリックして保存します。
Objectsは、ブロックされたドメインを、送信されたアドレスのドメイン部分と大文字小文字を区別せずに照合します。 エントリがブロックされたドメインに一致すると、Objects は次のメッセージでそれを拒否します。「メールアドレスのドメインは許可されていません。 別のドメインのメールアドレスを入力してください。 API経由では、同じ拒否に対してHTTP 400エラーが返され、問題のタイトルとしてそのメッセージが示されます。
オートコンプリートを有効にする
オートコンプリート機能を使用して、ユーザーがメールアドレスを入力する際にドメイン候補を表示させることができます。
-
オブジェクト定義の フィールド タブで、編集するフィールドをクリックします。
-
詳細 タブに移動します。
-
オートコンプリートのセクションで、 オートコンプリートを有効にする をオンにします。
-
ドメイン 入力欄にドメインを入力し(例:
@liferay.com)、Enter キーを押します。ドメインは入力欄の下のリストに表示されます。
-
をクリックして保存します。
ユーザーがメールアドレスを入力すると、Objects は設定済みのドメインをドロップダウン メニューに提案し、 @ と入力してドメインを開始するとリストが絞り込まれます。 これらのドメインはあくまで提案であり、Objects がそのフィールドに対して受け入れるドメインを制限するものではありません。 オブジェクトは、ブロックされたドメインにも含まれるドメインを候補から除外します。
フィールドオプション
メールアドレス欄は、以下の標準的なオブジェクト欄オプションをサポートしています。
- 必須: 値のないエントリは拒否されます。 Object Admin REST API はこのオプションを
必須として公開します。 - 一意の値のみを受け入れる: 大文字小文字を区別しない比較を使用して、2 つのエントリが同じメールアドレスを保存することを防止します。 フィールドを追加する際に、この設定を行ってください。 オブジェクト定義がドラフト段階であれば変更できますが、公開後は変更できません。
- デフォルト値: 新規エントリに事前入力値を設定します。 「詳細設定」タブでこれを設定します。「 デフォルト値を使用」をオンにしてから、アドレスを入力するか、式を使用して構築します。 Objectsはデフォルト値が実際のメールアドレスであることを検証し、保存する前に小文字に正規化します。 ブロックされたドメインに一致するデフォルト値は、送信されたエントリと同様に拒否されます。
- エントリ翻訳を有効にする: オブジェクト定義でローカライズ が有効になっている場合、言語またはロケールごとに個別の電子メール アドレスを保存します。 このオプションは、オブジェクト定義が公開された後は変更できません。
メールアドレスのフィールドは、 式ビルダー および 通知テンプレートの変数としても使用できます。
APIでメールアドレスフィールドを使用する
オブジェクト管理 REST API を介してオブジェクト定義のフィールドを照会すると、各 Email Address フィールドの応答には、 "businessType": "EmailAddress" が含まれます。 このプロパティを使用すると、メールアドレスフィールドと標準のテキストフィールドをプログラムで区別できます。
curl "http://localhost:8080/o/object-admin/v1.0/object-definitions/{objectDefinitionId}/object-fields" \
-u 'test@liferay.com:learn'
{objectDefinitionId} をオブジェクト定義の ID に置き換えてください。 /o/object-admin/v1.0/object-definitions にあるオブジェクト定義を一覧表示すると、それぞれの ID が返されます。
エントリを作成または更新する際は、メールアドレスを文字列として渡してください。 オブジェクトは、送信された大文字小文字に関係なく、保存前に値を小文字に正規化します。 この例では、 Contact Request という名前のオブジェクトにエントリを追加します。このオブジェクトのメールアドレスフィールドは emailAddress という名前です。
curl -X "POST" "http://localhost:8080/o/c/contactrequests?restrictFields=actions" \
-H "Content-Type: application/json" \
-u 'test@liferay.com:learn' \
-d '{"emailAddress": "User@Example.COM"}'
レスポンスには、保存された小文字の値が含まれます。
{
"emailAddress": "user@example.com"
}
emailAddress をフィールドの設定済みフィールド名に、 contactrequests をオブジェクトの API エンドポイント名に置き換えてください。 エンドポイント名はオブジェクト名の小文字の複数形で、オブジェクト定義では restContextPath のように表示されます。 カスタムオブジェクト API を参照してください。 restrictFields=actions パラメータはオプションであり、レスポンスから actions ブロックを省略します。
値の検証に失敗した場合、APIはHTTP 400エラーを返し、レスポンスタイトルにその失敗内容が記載されます。 ドメインがブロックされているアドレスを送信すると、「メールアドレスのドメインは許可されていません」というエラーが表示されます。 別のドメインのメールアドレスを入力してください。
ここでは、デモンストレーション目的で基本認証を使用しています。 本番環境では、 OAuth2 を介してユーザーを認証する必要があります。