エラー(400、404、403など)がある場合は、phpスクリプトを使用して、何が試行されているかをメールで通知します。
400エラーで、「from」と「to」にドメイン名が含まれていませんでしたが、別のドメイン名が含まれていることに気付きました。これは私が使用するコードの一部です。
PHPコード:
$http_host = $_SERVER["HTTP_HOST"];
$http_host = str_replace("www.", "", $http_host);
$from = "From: webmaster@" . $http_host . "\r\n";
$to = "From: webmaster@" . $http_host . "\r\n";
変数$http_hostには、他のドメイン名がありました。幸い、メールが返送されたので、問題に気づきました。これがWebアクセスログのエントリです
94.102.51.246 - - [23/Feb/2013:16:17:49 +1100] "GET http://24x7-allrequestsallowed.com/?...RWJWS_FA%40FQN HTTP/1.1" 400 2815 "-" "Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0"
$_SERVER["HTTP_HOST"]
'24x7-allrequestsallowed.com'に評価されたようです
これがURLとしてどのように解析されたかは不思議ですが、$ _SERVER["HTTP_HOST"]が「適切な」ドメイン名に設定されていないことに不安を感じています。