WORDPRESSで登録メール等が届かない・・・対応
WORDPRESSでは、新しいユーザーが登録された場合やお問い合わせフォームプラグインなどの設置で、自動的にメールが届く仕組みがある。
・・・はずなのだが、このメールが一向に届かない。
原因は、inetd。
およそのサーバにですね、inetd(※inetd は、FTP、POP3、telnet といったインターネットサービスが使うポート番号を(指定されて)監視する。監視対象のポートにTCPパケットあるいはUDPパケットが届くと、inetd は対応するサーバプログラムを起動し、コネクションを制御させる。by wikipedia)というのが、走っているわけなんですが、このinetdが、メール送信の時に、from情報もしているようで、WORDPRESSのデフォルトのまま設定ではこの監視に引っかかってしまうので、メールを受け取れない。
どういうことかというと。
WORDPRESSは、通知メールの送信に、wordpress@あなたのサイト名のアドレスでメールを送信します。このメールアドレスが、サーバ内に実在していれば、問題がないのだが、実在していないメールアドレスからの送信は、inetdの監視に引っかかってしまう。
て、おいおい。。。
最初からwordpress@domainなんてメアド誰がつくっとるねん;
とかツッコんでしまう。
よって、主な対応方法は、2つかと。。。
- 上記、wordpress@domainというメアドを実際に作ってWPの管理アドレスに設定する。
- または、このメアドをサーバに実在している実際の運用アドレスに変更する。
ま、たいてい、2ですな。
やり方。
/wp-includes/pluggable.php を開いて、L354あたりの、
$from_email = ‘wordpress@’ . $sitename;
を、(1)
$from_email = ‘あなたのめあど@domain‘;
か(2)
$from_email = ‘あなたのめあど@‘. $sitename;
に変更。
ただし、(2)の方法で変更する場合、wordpressで送信されるメールアドレスは、wwwのサブドメインは削除されることに留意すること。(→つまり、ドメインが、www.domain.comでも@から後ろは、domain.comにしかなりませんよ、でも、sub.domain.comだったら、そのままですよ、ということです。まあ、これは普通メアド作るときにも同じようなルールになるので、問題ないかと思うのですが・・・)
こういうところって結構悩みますね。
ちなみに、メアドチェックは、サーバー内で掛かりますよ。他のサービスで持ってるメアドで運用しようとしている場合は、要注意です。