15時06分05秒 [Web関連]
Web上のメール送信フォームの差出人を「入力されたメールアドレス」にしてはいけない(もはや)
メッセージ送信フォームが実際に送信するメールの差出人を「入力されたメールアドレス」にしているケースも多々あったが
Web上に設置された「お問い合わせ」用途が目的のメッセージ送信フォームでは、返信のためのメールアドレスを入力してもらう必要があります。
その際、
- 『閲覧者の入力したメールアドレス』を『メールの差出人』にする形でメールが送信される仕組み
……を採用しているケースもよくありました。
そのメリットは、受信者(=Webサイト管理者等)がメーラの「返信」ボタンを押すだけで返信できるような形になる点です。
しかし、その形態での運用は、もはや避けなければならないでしょう。
特に問題なのは送信者がGMailを利用している場合(=GMailのメールアドレスを差出人アドレスとして入力した場合)ですが、そうでない場合でも問題になる可能性があります。
Googleのスパム対策が厳しくなった上、SPF(Sender Policy Framework)が普及した
2024年2月からGoogleのスパム対策(特に、なりすましメールをブロックする方針)が凄まじく厳しくなったことと、Googleが強くアナウンスしてSPFが普及したことで、Web上に設置された(メール送信型の)お問い合わせフォームでは以下の問題(※)が発生するようになりました。
※あくまでもWeb上に設置する送信フォームから見た場合の「問題」であって、世の中全体に対しては「改善」ですけども。^^;
- 閲覧者の入力したメールアドレスのドメイン側で SPF が設定されている場合は、受信側メールサーバが迷惑メールに自動分類してしまう可能性が高まる。
- 特に、『閲覧者の入力したメールアドレス』が gmail.com ドメインだった場合で、受信者も GMail を利用している場合には、メールが自動破棄されてしまって届かない。
特に困るのは➋のケースですが。
以下に、順番に解説します。
▽➊差出人アドレスとして指定されたドメインにSPFが設定されていると「なりすまし」だと解釈される
仮に、以下のようなケースを考えます。
- うちのサイト(= www.nishishi.com ドメイン)内にお問い合わせ用の送信フォームがあり、
- あなたが自身のメールアドレス「 sakura@example.com 」を入力して問い合わせる。
この場合、うちのサーバは『 sakura@example.com を差出人にしたメール』を送信することになりますが、それはシステム的には『なりすましメール』になります。
example.com ドメインのメールアドレスを使って、example.com ドメイン以外のサーバから送信しているわけですからね。
従来、そのような『なりすまし』を判別する手段がなかった(使われていなかった)頃には、システム的には何も問題ありませんでした。(※システム的に問題がないからこそ、差出人を偽った詐欺メールが横行していたわけですが。)
しかし、その判別を可能にするのが SPF(Sender Policy Framework)です。
もし、あなたが所有しているドメイン(※ここでは例として example.com ドメイン)にSPFを設定している場合、『 example.com ドメインのメールは、×××のサーバからしか送信しません』と世界に向けて宣言することになります。(×××の部分はIPアドレスとか)
そうすると、他者サイトを経由して『 sakura@example.com を差出人にしたメール』が送信された場合には、「SPFで示されたサーバ以外のサーバから送信されている」=「なりすましメールである」と判定できるようになります。
判定が可能になったところで、実際にそのメールをどうするかは受信側メールサーバの方針次第ですが、少なくとも「迷惑メールだと判断される可能性」は高まります。
※あなたが自分で取得した独自ドメインのメールアドレスを使っていない場合でも、お使いのメールサービスの提供元がSPFを設定している可能性もあります。
したがって、訪問者が入力したメールアドレスを「(送信フォームが送信するメールの)差出人アドレス」として使ってしまうと、そのメールが迷惑メールだと誤判定されてしまう可能性があります。
▽➋GMailを差出人にしたメールを、GMail以外のサーバからGMail宛に送信すると、問答無用で消される
もっと問題なのは、➋です。
Googleは、『 gmail.com ドメインのメールは、自社のメールサーバからしか送信されない』と知っています。
にも関わらず、他社サーバから送信された「 gmail.com を差出人にしたメール」を GMail で受信した場合には、「なりすましメールである」と断定します。
なので、
- Webフォームから送信されたメールを GMail で受信する運用にしている。
- サイト訪問者が、Webフォームに gmail.com ドメインのメールアドレスを入力して送信した。
……という2条件が重なる場合、もはやそのメールは問答無用で破棄されてしまって、届きません。
例えば、
- うちのサイト(= www.nishishi.com ドメイン)内にお問い合わせ用の送信フォームがあるが、私はそのメールの送信先をGMailにして運用している。(※)
- あなたが自身のGMailメールアドレス「 ***@gmail.com 」を入力して問い合わせる。
……というようなケースです。(※これは例であって、実際には私はそのような運用にはしていません。)
当初は、上記のような場合でも「迷惑メールフォルダに自動分類する」という処理に留まるのかな……と思っていたのですが、意外とGoogle側の対応が厳しくて、もはや「問答無用で破棄する」という自動削除方針になっているようでした。
したがって、上記のようなケースにはならないようにしなければなりません。
結論:Web上のメッセージ送信フォームの差出人を「入力されたメールアドレス」にしてはいけない(もはや)
というわけで、もはやWeb上のメッセージ送信フォームの差出人は、『そのWebで使われているドメインのメールアドレス』に固定しておく必要がある、と言えるでしょうね。
つまり、以下のような運用にします。
- Webサイトに設置するお問い合わせフォームでは、差出人アドレスとして自前のドメインを使ったメールアドレスを固定的に使う。(たとえば、www.example.jp なら、noreply@example.jp みたいな同ドメインのメールアドレスを差出人に固定します。)
- 訪問者が入力した本人のメールアドレスは、あくまでもお問い合わせメール本文に記載するに留めておき、差出人としては使わない。
こうすることによって、Web上のお問い合わせフォームから届いたメールに、メーラの「返信」機能を使って返信することはできなくなります。
残念ですが、これだけスパムメールが横行している世の中なら、そこは「仕方がない」と考えるほかないでしょうね。
なお、差出人として使うダミーのメールアドレスに noreply という文字列を使っておけば、一部のメーラでは、誤ってそのメールアドレス宛に返信を書こうとした際に、「このメールアドレスに返信しても誰も受け取らないかもよ」という警告を出してくれます。(Thunderbirdとか。)
▼備考:自分が他者サイトにあるお問い合わせフォームを使う場合
もしあなたがGMailを普段のメールアドレスとして使っている場合、
他者サイト(特に個人サイトとか小規模企業サイトとか)にあるお問い合わせフォームを使う際には、そこがどのような運用になっているかが分からないので、念のためにGMailのアドレスを入力するのは避けておく方が無難かもしれません。
そのサイトの運営者が(自身のWebサイトからの問い合わせメールを)GMailで受信している場合、そのメールは届かなくなりますから。