SendMail in Windows Server

さて、いつもいつも同じことやってる気がするので、メモ。
Windows Serverでメール周りを設定していないなどの関係で、Sendmailが使えない場合。

解決方法は3つ
1.php.iniを設定して、mail関数でSMTPを利用するように
2.PEAR:Mailを利用
3.Socketをちまちま。。。

実運用中の環境だと1はさすがに再起動を伴う為難しい
(.htaccessでいけるかもしれんが、メールの送信設定はあまりいじりたくない)
また、実行環境に依存しないコードを書くという意味で、mb_send_mailも直接の利用自体が望ましくない。

なので、いつもは2を使うわけだが。
PEAR:Mailは、設定で"smtp","mb_send_mail","mail"を選択できる為、環境に依存しない)

PHPのバージョンとライブラリのバージョンの関係でよくトラブリます。
また、動かない、かつ、エラーが見えない。
※クラスの中を快適にデバッグできる方法誰か教えて。。。


てことで、残る3にいくまえに、よいライブラリを見つけました。
Qdsmtp http://hal456.net/qdsmtp/

PEAR:Mailの簡易版ってとこですが、1ファイルで使い勝手が良さそうです。

でも、仕事で使うときはライセンスの関係もあるので、今度時間がある時に、同一コンセプトで車輪の再開発しようかな。

7月19日追記
と、ブログにかいていたところ、ライセンスを変更くださっていました。hal456さん、ありがとうございます。
※非常に制限の緩いMIT Licenceになっています。
仕事などでも広範囲に活用できそうです。さっそくCakePHPでつかってみたいと思います。