XAMPPを使って、サーバー環境の開発をしている場合、PHPアプリからメール送信させる
適用業務を行う場合、アプリの動作確認として、この環境から、メールを外部に投げて
その結果を見たくなると思います。
現在のところ、
XAMPP環境では、Mercuryが同胞されていますが、自分用に設定をしないと使えません。
今回、少々苦戦いたしましたが、成功したものを掲載します。
ご参考まで。
OS:Windows7(32Bit)
XAMPP:1.7.7
+ Apache 2.2.21
+ MySQL 5.5.16 (Community Server)
+ PHP 5.3.8 (VC9 X86 32bit thread safe) + PEAR
+ XAMPP Control Panel Version 2.5 from www.nat32.com
+ (BETA) XAMPP Control Panel Version 3.0.2 by Steffen Strueber (not in the USB & lite version)
see http://www.apachefriends.org/f/viewtopic.php?f=16&t=46743
+ XAMPP Security
+ OpenSSL 1.0.0e
+ phpMyAdmin 3.4.5
+ ADOdb 5.14
+ Mercury Mail Transport System v4.62 (not in the USB & lite version)
+ FileZilla FTP Server 0.9.39 (not in the USB & lite version)
+ Webalizer 2.23-04 (not in the USB & lite version)
+ Perl 5.10.1 (not in the USB & lite version)
+ Mod_perl 2.0.4 (not in the USB & lite version)
+ Tomcat 7.0.21 (not in the USB & lite version)
2、PHPの設定
PHPの設定を変更して、Mercuryにメールが流れるようにします。
XAMPPをインストールしてあるディレクトリから、php.iniに変更を加えます。
2-1,xampp\php\php.iniのバックアップ
php.iniをコピーして変更前のバックアップをとります。
2-2、php.iniの編集
適当なエディターでphp.iniを開きます。
[mail function]を検索します。
----------------------------------------------------------------------
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost
sendmail_from = [送信するメールアドレス]
----------------------------------------------------------------------
変更箇所:sendmail from = [送信するメールアドレス]
2-3php.iniをsave
2-4XAMPPコントロールパネルを立ち上げ、Apachieを起動します。
3、Mercuryの設定
3-1、XAMPPコントロールパネルからMercuryを起動
3-2、XAMPPコントロールパネルからMercury Adomin画面を起動する。
3-3、Mercury Adomin画面「Configuration」>「Protocol Modules・・・」をクリック
3-4、「Select active protocol modules」ダイアログ上の「Active protocol Modules」
のラジオボタンを下記のみにチェックを入れる。
・MercuryS SMTP server
・MercuryC SMTP relaying client
3-5、Mercury Adomin画面「Configuration」>「MercuryS SMTP Server」をクリック
「Conection control」タブを選択、「Connection control」の「Add restrection」ボタンを押す
・「Edit connection entry」ダイアログ上の「Specify address or range address for entry」
内の「IP Address range・from」に「172.0.0.1」を記入。
・「Attributes for this entry」内の[Allow connections」ラジオボタンをオンにする。
okを押す。
・「MercuryS SMTP Server」ダイアログの「Conection control」タブ上の「Relaying control」
内のチェックは全部はずす。
・「OK」を押して終了。
3-6、Mercury Adomin画面「Configuration」>「MercuryC SMTP Client」をクリック
・「MercuryC SMTP Relay Client Configration」の「SMTP "Smart"Host details」内の
・「Smart host mane」にいつも使っているISPのSMTPホスト名を入力する。
・「Connection port/tupe」には、ISPの指定の通りにする。(私の場合は、デフォルトでok)
・「Credentials for SMTP Authentication, if required」内の
「Login Username」と「Password」には、送信元メールアドレスを指定する。
・okを押して編集終了。
3-7、Mercury Adomin画面「Configuration」>「Manage local Users・・・」をクリック。
・「User defined for this system」ダイアログの「Add」ボタンを押す。
・「User details」の「Setting for this user」内にISPで使っている送信元メールアドレス
として指定するメールのユーザー名、メールパスワードを入力する。
「Usernaame」、「Mail password」を上記にしたがって入力する。
・okを押して終了。
3-8、Mercury Adominパネルを終了させ、Mercuryを再起動する。
これで、PHPアプリから、指定したメールアドレスに対し、フォーム等の入力が送信される
と思います。