⌘I

レガシーフォーム(メールURL)の段階的廃止

Updated April 11, 2024
Also available in:

Formspreeは、「レガシーフォーム」と呼ばれるメールベースのフォームのサポートを終了する予定です。

レガシーフォームとは?

レガシーフォームは、フォームのHTML action属性のURLが以下のような形式になっているものです:

https://formspree.io/your@email.com

URLに直接メールアドレスが含まれています。

レガシーフォームからの移行

フォームのHTMLにメールアドレスを直接記述する方法に代わり、https://formspree.io/registerでアカウントを登録することをお勧めします。登録後、Formspreeダッシュボードで + New Form ボタンをクリックするか、CLIプロジェクトを作成することでフォームを作成できます。この方法で作成されたフォームのURLには、メールアドレスではなく一意の識別子が含まれます。

現在レガシーフォームをお使いの場合は、まずFormspreeダッシュボードまたはFormspree CLIで新しいフォームを作成することをお勧めします。その後、フォームのHTMLのaction URLを新しいフォームのURLに変更するか、AJAXを使用している場合は送信先のエンドポイントを更新してください。

この変更の理由

セキュリティとプライバシーの観点から、レガシーフォームはフォームを作成するための適切なワークフローではなくなったと判断しています。また、一部のブラウザが送信する情報を変更しており、送信内容をアクティベート済みのレガシーフォームに対応付けることが困難になっています。

レガシーフォームの仕組み

フォームのactionにメールURLを設定して送信すると、Formspreeはそのメールアドレスとフォームが送信されたページのURLを使用して新しいレガシーフォームを作成します。この2つの情報が必要なのは、同じメールアドレスを使用する異なるページや異なるウェブサイトのフォームを区別するためです。

初回送信時には、そのページのフォームをアクティベートするよう求めるメールが届きます。アクティベート後、それ以降の送信はURL内のメールアドレスに転送されます。

レガシーフォームの問題点

上記のワークフローは便利ですが、いくつかの問題があります:

  1. レガシーフォームはメールアドレスを公開してしまいます。ウェブサイトを巡回してメールアドレスを収集するボットに検出される可能性があります。
  2. レガシーフォームはメールアドレスと参照元ページ(リファラー)の組み合わせによって識別されます。つまり、action URLからはメールアドレスしか判断できないため、フォームを識別するためにフォームが送信されたページをリファラーヘッダーから検出する必要があります。最近のブラウザの変更により、リファラーヘッダーはフォームの識別に信頼性の高いツールではなくなっています。
  3. レガシーフォームはリファラーによって識別されるため、新しいページに追加されるたびに確認が必要になります。これにより、1つのHTMLフォームに対してFormspreeに複数のフォームが作成されることになります。フォームを再アクティベートしたり、ダッシュボードに同一フォームに関連する複数のエントリが表示されたりすることで、混乱が生じる可能性があります。

最大の問題は上記の2番目に関連しています。リファラーヘッダーはフォームの識別に信頼性の高いツールではなくなっています。 ブラウザベンダーはプライバシーへの配慮を強めており(正当な理由があります)、デフォルトでリファラーヘッダーで送信される情報を制限しています。以前はこのヘッダーにパスを含む完全なURLが含まれていましたが、現在はデフォルトでパス情報が削除されています。ウェブサイトのオーナーはリファラーポリシーを設定してこの動作を上書きできますが、多くの場合設定されておらず、すべてのブラウザがその設定に従うわけでもありません。Chromeの最近の変更については、Google Developersブログをご参照ください。