MW WP Formは日本語の解説ページが充実していて、wordpressで作られたサイトのお問い合わせフォームなどによく利用されます。管理画面で色々設定を変更できるので、開発者だけでなく、管理者にも使いやすいのです。
ですが、それ故に、あまりメール送信システムに関する知識が無くても、設置できてしまい、いざトラブルが発生してしまうと、どうしたら良いのかわからず、困る方が多いのも事実だと思います。
今回は、「ユーザーにはメールが届くけれども、管理者にメールが届かない」というトラブルでした。少し前にもMW WP Formではなく、私がスクラッチで開発したメールフォームでも同様に管理者に届かないという事案があり、ピンときました。サイトを運営しているドメイン宛にphpのメール送信コマンドである、mail()で送信するとメールが届かないことがあるのです。
届かない理由は、postfixの設定です。mydestinationにバーチャルドメインが追加されていないと動きません。弊社のメールサーバーはns.wamu.co.jpですが、同じサーバーにバーチャルドメインとしてhttps://wamu.jpも運用しています。なので、以下のように記述しています。
mydestination = $myhostname, localhost.$mydomain, localhost , $mydomain , wamu.jp
この状態であれば、https://wamu.jpのメールフォームでmail()コマンドを使ってinfo@wamu.jp宛に送信しても、しっかりメールが届きますが、この記述がなければ、他人の接続とみなして、mail()での送信は拒否してしまうのです。
で、レンタルサーバーだとpostfixの設定は変更できませんので、smtpサーバーを利用して送信することで、確実に送信できるようになります。
wordpressでしたらsmtp送信を実現するプラグインがたくさんありますのでどれかをインストールしてsmtpサーバーurl、ID、パスワードを設定するだけです。
MW WP Formを使うならsmtpプラグインも合わせて利用するのが吉です。