カテゴリー : 2015年 1月

wp_mail メールを2通送信する怪

wp_mail()を利用した1回のコールで2通送信するという理由の分からない現象が発生、アレコレやっている内に正常に戻った(1通の送信)、という不思議な現象があったので書き留めておきます。

最初はプログラムミスで2度コールされたかと疑って確認しましたが、それはなかったでした。

メール送信する関数を他の機能でもコールしているのでそちらの方を実行したところ、そちらは1通しか送信されませんでした。データの誤りも確認しましたがそれも原因ではないようでした。

PHPのバージョンが5.3.29だったので5.4.35に変更して試してみましたが、やはり2通送信されました(さくらのレンタルサーバ)。

ところでChromeで管理画面からバージョンの切替えを実行すると、何故かログイン画面に移動してしまい、ログインし直してバージョンを確認しても切り替わっていませんでした。たまにこういうことが起こるので、操作はFirefoxから実行しました。

wp_mail()が原因かどうか確認するためmb_send_mail()に変更してみると、同じように2通送信されてしまいました。

そこでhttpデータを確認するためFirefoxのLive HTTP Headersアドオンを利用してキャプチャしてみましたが、同じセッションが2回繰り返されていることはありませんでした。

ところがです。この後の操作からmb_send_mail()も、元に戻したwp_mail()も正常に1通のみ送信するようになりました。

何が原因かは分かりません。こちらの手の届かない部分で発生した現象と考え、先に進むことにしました。

その後…

Chromeから操作すると、また2通送信されてしまいました。そこでFirefoxから操作してみましたが同様でした。再度Live HTTP Headersを操作すると、Firefoxからサイトをアクセスする限り2通送信されることはありませんでした。