dari88's diary

これから趣味にするプログラミング/PHP/javascript/kohana/CMS/web design/

続 PHPでメール処理・・・MercuryのPOP3サーバーとSMTPサーバーの設定

今日もNetBeansにて「PHP逆引きレシピ」のサンプルコードを教材にPHPの勉強を進めています。

今日のお題は第6章6.7「メール処理」に関連して、Mercury の POP3 サーバーと SMTP サーバーの設定です。SMTP サーバーをオープンにしていては迷惑メールの中継に使われる可能性があるので、セキュリティーを考慮した設定にします。

ということで、設定手順とその結果をメモします。

<設定手順>
・xampp のコントロールパネルを起動し、Appache と Mercury をスタートする。[Admin] ボタンをクリックして Mercury の管理画面を表示する。
・[Confuguration]-[Protocol Modules...]にて、MercuryS、MercuryP、MercuryE 以外のチェックを外して[OK]。
・[Configuration]-[MercuryS SMTP Server]-[Connection control] にて、[Use strict local relaying restrictions]をチェック。
・続いて [Add restriction] をクリックして、IP Address range の from に 127.0.0.1 を記入し、[Allow connections]が選択されていて、[Connections from this address range may relay mail through this server] をチェックして、[OK]。さらに [OK]。
 自宅 LAN 内の他のPCにも SMTP サーバーを使わせる場合は同様にしてIPアドレスの範囲を追加する。
・[Configuration]-[Manage local users...] にて、newuser を削除する。
・続いて、Admin と postmaster のパスワードを設定する。
・続いて、[Add] をクリックして新しいユーザーを登録し、[Close]。例えば、
  dari88、dari88、パスワード
・[Configuration]-[Mercury core module...]-[Local domains] にて、localhost.net、localhost.org、localhost.com を削除する。
・続いて、[Add new domain] をクリックして、次を記入して[OK]。
  Local host or server: localhost
  Internet name: 取得済みのDDNS
 さらに[OK]。
・Mercury を再起動する。
・自宅内ルータの WAN 側ポート 25 と 110 を当該PCのポートに繋ぐために、アドレス変換の設定をする。
・使用しているメーラー(小生は Thunderbird)にて新しいアカウントを追加する。POP メールサーバーの設定は、上記で作成した POP3サーバで、登録した新しいユーザーのユーザー名とパスワード。

<試験結果>
・サンプルコード 01.php にて dari88@[取得済みのDDNS名] にメールを送ると実行される。
Thunderbird から dari88@[取得済みのDDNS名] にメールを送れる。
・本当に外部からメールを送れるのか確認するために、携帯電話からメールを送ってみたがちゃんと送れる。
Thunderbird にて [取得済みのDDNS名] の POP3 サーバーからメールを受け取れる。
・サンプルコード 02.php にてメールを受け取れる。但し、添付写真は base64エンコードされた文字として受信される。

ということで、メールサーバーが完璧に立ち上がりました。何て面白いんでしょうか。ここまで来れば努力しだいで Gmail みたいな WEB メールのページを構築することも不可能ではありませんね。