[PHP-users 33339] Re: Windowsで空メール送信

Ryo Suyama ryo @ spais.jp
2008年 2月 29日 (金) 09:34:39 JST


はじめまして。
須山と申します。

僕が以前 Windows サーバで実装したときは PHP ではありませんでしたが、
Windows にある SMTP サーバのイベントに WSH をバインドしていました。

Windows の SMTP サーバには smtpreg.vbs というスクリプトをコマンドプロン
プトで走らせることで任意のスクリプトをバインドすることが可能です。

[smtpreg.vbs]
http://msdn2.microsoft.com/en-us/library/ms528023(EXCHG.10).aspx

バインドするには以下のコマンドを走らせます。
> cscript C:\InetPub\lib\smtpreg.vbs /remove 1 onarrival SMTPScriptingHost
> cscript C:\InetPub\lib\smtpreg.vbs /add 1 onarrival SMTPScriptingHost
CDO.SS_SMTPOnArrivalSink "mail from=*"
> cscript C:\InetPub\lib\smtpreg.vbs /setprop 1 onarrival
SMTPScriptingHost Sink ScriptName "C:\InetPub\Scripts\fw.vbs"

smtpreg.vbs を読まれるのが一番手っ取り早いですが、以下のページなども参考
になるかもしれません。
http://support.microsoft.com/kb/837851

上記の例は WSH で僕自身 PHP をからめた事はありませんが、PECL に
php5activescript.dll という「WSH で PHP を動かす」ライブラリがあるようで
す。この辺りをからめて行くか、もしくは WSH からデータベースの com などを
呼び出して使うかなどいくつか選択肢があるかと思われます。

ちなみに、WSH をイベントにバインドできるので、即ち JScript もバインド可
能となります。
その場合例えば WSH での ISMTPOnArrival_OnArrival() は JScript では
ISMTPOnArrival::OnArrival() となります。

4,5年前には MSDN に日本語のドキュメントが割りと多かったのですが、今と
なっては英語のドキュメントしか見当たりませんが・・・現在ご利用なさってる
Exchange Server でも同様の事ができるはずですので、方法のひとつとしてご検
討下さい。
また CDO、MAPI などと言ったキーワードでの検索でも参考になる情報がひっか
かるかもしれません。

それでは。

-- 
┏━┯━┯━┯┯━┓
┃─┤─│─├┤─┨
┠─│┌┤││├─┃
┠─┴┘└┴┴┴─┨
┃    須山  亮    ┃
┃  ryo @ spais.jp  ┃
┃http://spais.jp/┃
┗━━━━━━━━┛


PHP-users メーリングリストの案内