うろぐ

インターネットサービス&デジタル家電&デジタルカメラ&パソコンのレビュー

以前、仕事で作成したフォームメールが作動しなくなったという、連絡が入りました。
これまで正常に動作していたCGIが突然作動しなくなったというので、最初はサーバを疑ったのですが、サーバ会社に問い合わせると、特にバージョンアップやモジュール類のインストールなどの変更は行っていないことが分かりました。
となると、CGIが原因としか考えられません。

フォームメールを利用している相手先にCGIを自分で書き換えたかと問い合わせると、手は全く加えていないと回答をえました。
しかし、念のためにフォームメールのCGIをダウンロードしてきてチェックしましたが、確かに変更はされていません。

こうなるとやっかいです。
とりあえず、フォームメールを作動させているCGIが読み込んでいるファイルを1つずつチェックをする事にしました。
原因は簡単でした。メールアドレスを簡単に書き換えられるように別ファイルに書く様に設定してあったのですが、CGIでメールアドレスを読み込ませる際には注意が必要なのですが、相手がそれを知らずに書き換えていたのです。

本来は
"ulog\@exampl.com"とするか
‘ulog@exampl.com’としなければならないのですが

相手先は
"ulog@exampl.com"と書き換えていたのです。

つまり、シングルクオートでメールアドレスを囲んでいれば直接メールアドレスを書いてもかまわないのですが、ダブルクオートでメールアドレスを囲んだ場合は@の前に\を入れないといけないのです。

わたしが書いたソースは、分かりやすいようにシングルクオートで書いておいたのですが、相手先がダブルクオートで囲んで、変更したメールアドレスに書き換えたそうです。
この点は、わたしの方の説明不足でした。メールアドレスを変更する際には、このファイルのメールアドレスを書き換えてくださいと説明しましたが、ダブルクオートとシングルクオートの違いまでは、話すと相手が混乱すると思い説明をしていなかったのです。相手の方もCGIがこれほどデリケートなものだと初めて知りましたと、納得してもらえたのが幸いでした。

5月 22nd, 2008

Posted In: CGI(Perl)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です