この記事は5年以上前の情報で、内容が古くなっている可能性があります。

XAMPP Mercuryでローカルユーザ宛のメールの送受信する

PHPのメールフォームからメールを送信して、そのメールを受け取る というテストをしたい(要はメールフォームの動作確認がしたい)ので、XAMPPに入ってるMercuryというメールサーバの設定をしましたメモ。

外のメールサーバにリレーしたりするのはなんか設定めんどくそうなのでローカルで全て完結するように。

  • ローカルのSMTPサーバからローカルのユーザに送信
  • ローカルのPOP3サーバから届いたメールを受信

Mercuryの起動

XAMPPコンパネからMercuryをStartする。
WindowsFireWallから警告が出るので許可にする。

Adminボタンを押してもMercuryさんの管理画面が立ち上がらない!なんでー?
Stopボタン押してもとまらない。

仕方ないのでタスクマネージャからmercury.exeを選んでプロセスの終了。

D:\Applications\xampp\MercuryMail\mercury.exeを直接起動

(2回目からはXAMPPから起動&コンパネ表示できた。原因不明)

Mercuryの設定

起動させるとMercuryのコンパネが表示される。
ウインドウがいっぱい表示されるけど気にせずに。

メインウインドウのメニューConfignation → Protocol modulesのウインドウを開く
MercuryS SMTP server と MercuryP POP3 server だけチェック入れてあとははずす

一旦アプリケーションを終了させて再び起動。

SMTPとPOP3とCoreのウインドウだけになる

Mercuryのユーザの追加とテスト送信

メニューのConfignation → Manage Local Usersのウインドウを開く
既存のユーザは消して、新しくユーザを追加(ここではtest1というユーザを作成するとする)

メニューのFile → Send mail masseges ウインドウを開いて、test1にテストメールを送る(あて先は、to:test1@localhost で送れる)

メールクライアントソフトを起動して(ここではThunderberdとする)ローカルユーザ(test1@localhost)がメール受信できるようにアカウントを作成。

設定終わったらメールを受信する

Mercuryから送ったテストメールが届いているか確認する。

PHPでメール送信プログラムを書くか、誰かが作ったフォームメールをローカルのどっかに設置。
Apache起動して、送信テストしてみて送れる&届くか確認。

※ ローカルユーザ宛だけで使う場合はphp.iniの変更は特に必要なし。外部にリレーする場合はいるみたい。

外部に送信したい場合はまた設定が違うのでその辺は下記サイトを参考に読みましょう。