サーバー

これで自動認識?・・・でも不安

2012年05月04日
ぶつぶつ書いてしまったqmailのバグですが、これでMTAを自動認識できるようになるかもしれません。

以前、何のMTAを使っているか判別する方法を探したとき、PHPのiniファイルの設定を読む方法しか見つけられなかったのですが、今回別の視点から検索していたら、見つけました。
ちょびろぐ
system関数を使って調べるようです。
設定ファイルを辿っていけば、どこかにMTAがわかる記述があるはずだとは思っていましたが、system関数で調べられるんだぁ。勉強、勉強。

しかし、どうやら重たいらしいです。まいったなぁ。
私としては、こんな苦労はしなくても、SMTPポートを直接開いて送信してしまったほうが後腐れなくて、すっきりして、爽快なんですが・・・
ポートを開くとなると、IDやPWをどこかに保存しておかなければいけません。(もしかしたら自動取得できるのかもしれませんが、どうせ面倒でしょうし、そうなるとどっちが良い方法かわからなくなってきます。)
ユーザーさんにも設定してもらわなければいけませんし、極力ファイルに保存しておきたくありません。
もちろんステップメールやメールマガジンのように大量配信する場合は、PHPのmail関数は不適切ですから、SMTPポートを開きます。ですが、一度に送信するのが1通や2通の場合は、ユーザーさんの設定を軽くしたいな、と思います。

Qdmailに組み込まれているソースを使いやすいようにアレンジして、試してみました。
動いているっぽいです。確かに、qmailのときはステータス111を返し、sendmailでは1を返してきます。
でもソースにある100はどんなときに返ってくるんだろう?

まぁ今の状態より、より正確な自動判定ができると思うので、導入しようと思います。
でも、今の手動で設定する方法も残しておくつもりです。
世の中思わぬ動きをするサーバーがあるかもしれません。自動判定できない場合に備えて手動も残しておいたほうが安心です。せっかく今機能があるんですから。

重たいらしいし、ツールの管理画面を開いたとき判定して、設定に反映したほうがいいかな?
送信前に一度だけチェックすれば、さほど負荷はかからないかな?