最近あった話。
送信先のアドレスをループしながら送信するphpのスクリプトで送信した際に、文法エラーが発生して、メールが送れないという事態が発生した。
エラーが示す箇所は、 select distinct column from テーブル のところだった。このスクリプトで半年近くエラー無く送信できたのに。。。
このエラーが発生する際、不思議なことがあった。同一のネットワーク環境で、パソコンAのfirefoxブラウザで送信スクリプトを実行するとエラーが出て、パソコンBのchromeブラウザだとエラーが出ない。もう、はっきり言って意味がわかりません。
とりあえず、できることから対処してみることにした。
まず、エラーが出ているところのスクリプトの変更を考えた。
エラーが出ているのは、アドレス重複処理(ユニークアドレスのみに送信)箇所だったので、これの変更を考えた。でも普通に SELECT column(アドレスのcolumn) FROM テーブルにはできるだけしたくなかった。これだと、アドレス重複して送信しまうから。
ちょっと調べると、重複処理には
・SELECT distinct column(アドレスのcolumn) FROM テーブル ・SELECT column(アドレスのcolumn) FROM テーブル GROUP BY column(アドレスのcolumn)
のいずれかが使われるようだったので後者に変更。そして、送信したところ、変更後はエラーは出なかった。これで以後、エラーと謎な現象が起きないことを祈るばかり。