WindowsのPHPでメールを送る

とくにPHP限定の話でなく、Windows全般で開発をする場合の話なのですが、あえてPHPを例に説明します。

WindowsPHPで開発をしていてメール送信を行う場合、別途SMTPサーバーが必要になります。


開発の際にセキュリティの緩いSMTPサーバーがあればいいのですが、通常認証がかかっていたり、存在するアカウント以外のFromやDomain以外は受け付けなかったりと、送信できる条件がきびしかったりします。
テストの段階でも、特定のFromを使いたかったりすると思いますし、管理するサイトはひとつではないかと思います。


また、CRAM-MD5認証などセキュアにしている場合にはそもそもSMTPサーバーにつなぎにいくことができません*1


そんなときこのソフトを使うと便利です


Radish
実行ファイルをクリックするだけでSMTPが常駐してくれるので、あとはphp.iniを

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

のようにローカルホスト指定してあげることで、無条件にメールを送ることが可能になります。
また、実際に送信せずにログにためておくなど、様々な開発の仕方を体験できることになります。


これは便利!


追記:
みつけてパパっと書いちゃったけど今テスト中。
前にテストしたときは普通に飛んだのになぜか飛ばなくなってしまった・・・
ただ実際飛ばさなくなくて、キューで止めておいて全てのメールを確認できるよ

*1:Pear::MailやZend_Mailを使えば可能だが、速度は遅い。アカウントやドメインの認証は必要になる