2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【インフラ】問合せフォームで蹴られた意外な理由とは?

Posted at

※ 実話です (´・ω・`)

皆さんも考えてみてください

ある企業(D社)に問い合わせをするため、
D社のwebサイトの「問合せフォーム」を利用しました。

●氏名
ほげほげ太郎

●返信用メールアドレス
xxxx@example.com

●問い合わせ内容
かくかくしかじか。かくかくしかじか。かくかくしかじか。

これらを記入し投稿しました(ブラウザ上は正常終了)。
すると記入したメールアドレスに、下記のメールが届きました。

●件名
Mail delivery failed : returning message to sender

●本文
This message was created automatically by XXXXXXX.

A message that you sent could not be delivered to all of its recipients.
This is a permanent error. The following address(es) failed:

xxxx_xxxxxxx_xxxxx@xxxxxxxx.com
host xxxxxxxx.xx.xxxxxxxxxxx.com [XX.XX.XX.XX]
SMTP error from remote mail server after end of data:
553-SPF (Sender Policy Framework) domain authentication
553-fail. Refer to the Troubleshooting page at
553-http://xxx.xxxxxxxxxxxxx.com/troubleshooting for more
553 information. (#5.7.1)

さて、これは何を意味するのでしょうか?
問合せフォームと、何か関係あるのでしょうか?
そもそも問い合わせは、受理されたのでしょうか?

解答

問い合わせは、受理されなかった 可能性が高いです。
上記の英文メールも、問合せフォームに関係があります。

解説

上記の問合せフォームは、おそらく、投稿内容をメールで転送する仕組みです。
私たちがフォームで投稿すると、D社の問合せ担当にメールが届きます。

それ自体は問題ありません。しかし、転送メールの組み立てに問題がありました。
メールの差出人(From)、および、**エンベロープFrom(Return-Path)**に、
私の記入した「返信用メールアドレス」をセットしていました。

つまり、あたかも私のメールアドレスから直接、
D社に送信したように加工していたのです。

これは何を意味するでしょうか?
そうです。**「なりすまし」**です! 上記の加工は、From の偽装そのものです。

From 偽装のメールを、D社のメールサーバに送ると どうなるか?
(実際はD社からD社へ送っているのですが)
スパム判定ツールが「なりすまし」と見なし、メールを拒否します。

そりゃそうです。D社のIPアドレスからは来るはずのない
差出人 xxxx@example.com のメールが飛んでくるのですから。

しかも面白いことに、拒否されたという通知(冒頭の英文メール)が、
Return-Path の xxxx@example.com (つまり私)に送られたのです。
私は なりすましメールなど送っていないのに、です。

(フォーム投稿しただけなんだけど。)

疑問

ただ それだと、すべてのフォーム投稿が拒否されるはずです。
投稿のたびに なりすましメールが送信され、スパム判定され、
捨てられるのですから。

でも実際は逆で、ほとんどの問い合わせがスパム判定にパスし、
受理されているに違いありません。

じつは、記入したメールアドレス(xxxx@example.com)だから
拒否された理由があったのです。

SPF

冒頭の英文メールのURLにアクセスすると、このような説明がありました。

If the Env Sender publishes a hard-fail SPF policy and the inbound email fails SPF verification,
the action of block and delete will be enforced and a 5xx error is returned to the sender.
SPF records set to soft-fail will not trigger the action.

要するに なりすましの場合、SPFに -all(hard-fail) の設定があれば
エラーとして扱います。ただし ~all(soft-fail) なら受理します、と。

たしかに xxxx@example.com のSPFは、
-all(hard-fail) という厳密な設定をしていました。
それゆえ、問い合わせがエラーとして扱われたのでしょう。

いやいや(笑)

D社の担当者さん、そうじゃないでしょう。
じゃ、SPFに -all(hard-fail) は使えないのですか?
ウチが ~all(soft-fail) に変えなきゃいけないのですか?

D社内で勝手になりすましメールを送って、
これまた勝手に拒否しているんでしょう?
変えるとしたらD社の問合せシステムですよね?

まずメールの差出人(From)を、D社の固定のメールアドレスにする!
(これで、なりすましでは無くなります。)

そして必要なら、返信用メールアドレス(xxxx@example.com)は
Reply-To に設定する!(決して From, Return-Path ではない。)

(あるいは問い合わせの転送メールのみ、スパム判定をスルーするとか。)

強制 問い合わせ!

さて、愚痴ったところで、このままでは永遠に問い合わせができません。
私は以下をおこないました。

じつは冒頭の英文メールには、本来 届くはずだった問合せメールが添付されていました。
その内容を そっくりそのままコピーし、私のPCのメーラーから送りました。
正規のIPアドレスから送るのだから、今度は なりすましではありません。

(もし届いたとき、D社の担当者がメールを見たら、
「なんかフォントが違うなぁ」くらいは思ったかもしれません。)

結局、問い合わせは受理されたようで、後日 回答メールが届きました。

コマンド

SPF(TXTレコード)の確認は、Linux(CentOS7)の場合、dig を使います。

dig txt xxxx.com

参考

SPF(Sender Policy Framework) : 迷惑メール対策委員会

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?