- PR -

質問なのですが windowsサーバでのSMTPについてですが

1
投稿者投稿内容
ヤマダです
会議室デビュー日: 2004/11/06
投稿数: 2
投稿日時: 2004-11-06 15:56
windows2000サーバで mail@ドメイン名のところに メールが来て mail@ドメイン名にメールを受けたとき プログラムを動かしたい場合どのようにすればいいのか 悩んでまして

前までは linuxでメールサーバを立てて
echo '|"/usr/bin/perl /var/www/html/kids/mail1.pl"' > /home/requestkids/.forward
.forwordに記述してたのですが
この度 windows2000サーバでも出来るかなと言われまして
いろいろ調べたのですが
vb系のところで
メールの到着をスクリプトに渡すと書かれてて
メールの到着に合わせてスクリプトを実行させる必要があります。
そのため smtpreg.vbsのスクリプトファイルを利用してSMTPのイベントに合わせて動作するように設定しますとあったのですが

サンプルリスト
C:\temp>cScript smtpreg.vbs /add 1 onarrival SMTPScriptingHost CDO.SS_SMTPOnArralSink "mail from=*"

Microsoft (R)Windows Script Host Version 5.1 for Windows
Copy・・・

Binding Display Name Specified: SMTPScriptingHost
Assigning priority 24575 in 32767 )
** SUCCESS **
Registered Binding:
Event Name :SMTP Transport OnSubmission
Display Name:SMTPScriptingHost
Binding GUID:{DBB33992-DEF8-46BC-BD7D-0F00D37293F0}
ProgID :CDO.SS_SMTPOnArrivalSink
Rule :mail from=*
Priority :24575 (0 - 32767, default: 24575)
comCatID :{FF3CAA23-00B9-11d2-9DFB-00C04FA322BA}

C:\temp>cScript smtpreg.vbs /setprop 1 onarrival SMTPScriptingHost Sink ScriptName "c:\temp\sinkScript.vbs"

Microsoft (R)Windows Script Host Version 5.1 for Windows
Copy・・・

Binding Display Name Specified: SMTPScriptingHost
set property ScriptName to c:\temp\sinkScript.vbs

このサンプルでどのような作業になってるのかが分からないです
すいませんが 教えていただけないでしょうか。
質問ばかりですいません
nic
会議室デビュー日: 2004/11/23
投稿数: 1
投稿日時: 2004-11-23 01:43
はじめまして。

初めての投稿なので不備があるかもしれませんが・・・

例えばバッチファイルでcscriptを走らせ、以下の様なレジストレーションを行います。

cscript ..\lib\smtpreg.vbs /add 2 onarrival SMTPScriptingHost CDO.SS_SMTPOnArrivalSink "RCPT TO=bar"
cscript ..\lib\smtpreg.vbs /setprop 2 onarrival SMTPScriptingHost Sink ScriptName "C:\InetPub\scripts\auto_reply\auto_reply.vbs"

bar@ドメインへメールが来たとします。その受信したメールが指定されたディレクトリへドロップされる前にメールの内容をトラップするイベントです。

OnArrivalとはメールがドロップされる前に発生するイベントです。
上記の場合、bar@ドメインへ送られたメールがドロップされる前にauto_reply.vbsで処理をするというものなので、簡単に言ってしまえばこのイベントでキャプチャしたメールをauto_reply.vbsで差出人や件名、本文などを分析して自動的に返信するシステムなどを作ることができるというものです。

ヤマダさんの例で言うなら

>C:\temp>cScript smtpreg.vbs /add 1 onarrival SMTPScriptingHost CDO.SS_SMTPOnArralSink "mail from=*"

mail from=*とはワイルドカードなので「全ての受信メール」に対して起きるイベントとなり

>C:\temp>cScript smtpreg.vbs /setprop 1 onarrival SMTPScriptingHost Sink ScriptName "c:\temp\sinkScript.vbs"

誰からでもいいからメールを受信したら指定されたディレクトリへドロップされる前にc:\temp\sinkScript.vbsを走らせる。と言うわけですね。


参考としましては

Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus )と言うのがメール着信時に呼ばれるハンドリング関数で

"mail from=差出人" であるとか
"RCPT TO=宛先" などでイベントをレジストするわけですが、宛先でレジストするとユーザーを増やすことなく(CALに関係なく)仮想的にユーザーを増やせると言う、まるで裏技的なことまで出来てしまうのでご参考までに・・・

【参考URL】
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_about_cdo_for_windows_2000.asp
http://support.microsoft.com/default.aspx?scid=kb;ja;JP324021


お役に立てたでしょうか?

[ メッセージ編集済み 編集者: nic 編集日時 2004-11-23 03:10 ]

[ メッセージ編集済み 編集者: nic 編集日時 2004-11-23 03:11 ]

[ メッセージ編集済み 編集者: nic 編集日時 2004-11-23 03:12 ]

[ メッセージ編集済み 編集者: nic 編集日時 2004-11-23 03:13 ]
1

スキルアップ/キャリアアップ(JOB@IT)