ども。鉄王です。
いま、自社のウェブサイトをせっせと作っております。今回は全面的にWordPressを導入したサイトにしようということで(会社としても制作のノウハウを溜めることになるし)、ローカルにXAMPP環境を構築して試行錯誤しながらやっている最中です。テンプレートの修正がすぐ反映されるのがいいですね、ローカルに環境をこしらえると。
で、ずっと後回しにしていたメールフォームまわりの構築に取りかかっていったわけです。
メールフォームの動作を確認するためにもメールサーバを整えねば、ということで登場いただいたのが、XAMPPに含まれている『Mercury/32』。試行錯誤しながらの設定で外部にメールを飛ばせましたので、ここに報告いたします。設定例がないかと事前にググってみたんだけど、OP25B対策をしているISPのSMTPサーバにメールを送る事例が見つからなかったんですよね。
あくまで当方での設定例なので、例によってご利用は計画的に。前提条件は以下のとおりです。
(コメント欄 na さんの詳しいフォローもぜひご参照ください)
- XAMPP環境のWindows PCはブロードバンドルータを通じてISPに接続
- ISPは@nifty OP25B対策が施されており、587番ポートを利用するにはSMTP-Authが必須
[php.ini の mail function の項]
; For Win32 only.
SMTP = localhost
smtp_port = 587
; For Win32 only.
sendmail_from = hogehoge@tecking.org
[Mercury/32 の設定]
Configurationメニュー → MercuryS SMTP Serverメニュー → Connection control タブ
「Do not permit SMTP relaying of non-local mail」と「Authenticated SMTP connections may relay mail」のチェックを外す
Configurationメニュー → MercuryC SMTP Clientメニュー
SMTP “Smart” Host detailsの項
Smart host name …… smtp.nifty.com
Connect to TCP/IP port …… 587
Credentials for SMTP Authentication, if required
Username …… 《ISPのユーザーID》
Password …… 《ISPのパスワード》
という感じで。OP25Bが施されているISPのメールサーバを利用したい方の参考になれば。
とても有用な記事だと思いますので、補足させてください。
XAMPP 1.7.3(Windows XP Professional)で話を進めます。
この記事の例のような場合に必要なMercuryは、
Mercury S(PHPスクリプトなどからの要求を待ち受ける)
Mercury C(受け付けたメールをISPに中継する)
の2つです。XAMPP 1.7.3付属のMercuryは「Mercury C」ではなく
「Mercury E」が標準で有効になっていますので、
Configuration → Protocol Modules…
でCを有効にしておきます。(今回の例では、SとCだけに
チェックしておけば十分。)
php.iniについては、デフォルトから特に
設定を変更する必要はありません。php.iniでのsmtp_portは、
Mercury Sの待ち受けポートです。ISP宛てではありませんので、
標準の25番のままで問題ありません。
むしろ、587番に変えたときにはMercury Sの
Listenポートを変更する必要があります。
sendmail_fromも、必ず設定しなくてはいけない
たぐいのものではありません。ただし、
設定の有無によって[mb_]send_mail()に影響します。
次にMercury Sですが、これもデフォルトのままで
動作すると思います。デフォルトでは
Do not permit SMTP relaying of non-local mail
にチェック、
Authenticated SMTP connections may relay mail
が無チェックでした。特に前者はPHPスクリプトを
localで動かすならば、チェックを入れておいたほうが
セキュリティが高まります。
というわけで、事実上Mercury Cの設定が重要です。
長々と失礼いたしました。
naさん
たいへん詳しいフォロー、ありがとうございます。
わたしも、試行錯誤しながら設定していたので、理屈がわかり参考になりました!
助かりました。悪戦苦闘がこの記事で無事、Breakthroughです。
ただ、php.ini の smtp_port=587(その他 Default) でエラーがとれました。
環境:WinVista XAMPP1.7.3 php5.3
rubyでの構築をあきらめ、phpに方針転換してやっとOKです。
これで「問い合わせ」画面が本格開発できます。
大変、ありがとうございます。感謝
xampp send mail:
http://www.tecking.org/archives/422
鉄王 – XAMPPの『Mercury/32』を使って外部にメールを送る設定(OP25B対応) http://htn.to/RT71q7