PowerShellは新しい電子メールイベントでWebサービスを呼び出します(Exchange2010)

StackOverflow https://stackoverflow.com/questions/2819735

質問

Exchange 2010があり、すべての新しい電子メールに対してWebサービスを使用してプロセスを実行してメールボックスに掲載する必要があります。このプロセスは、基本的に内部タスクリストにメールを追加します。

これにはPowerShellを使用できますか?

PowerShellを使用する前にPowerShellを使用したことはありません。

そうでない場合は、x秒ごとにメールボックスを監視する以外に、これを行う別の方法を提案できます。本当にイベントに基づいて欲しいので、新しいメールがない場合は処理がありません。

乾杯、マイク

役に立ちましたか?

解決

私はこれを調べて数日間費やしましたが、着信電子メールイベントにカスタムコードを追加することは非常に難しいようです。そして、それを行う方法の多くは、Exchangeが電子メールシステムを遅くしていると考えている場合に無視されます。 (http://www.outlookcode.com/article.aspx?id=62)

もう1つの方法は、動作するがハックのように感じるSMTPイベントに接続することです。そのためには、WScriptを書く必要があります。メールが到着した場合に登録してください。

以下は、SMTPを介して来るすべての電子メールにランダムHEX参照を追加するためのVBスクリプトの例です。

<SCRIPT LANGUAGE="VBScript">

Sub IEventIsCacheable_IsCacheable()
    'To implement the interface, and return S_OK implicitly
End Sub

Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus)
    Dim Flds

    randomize()

    set Flds = Msg.Fields
    With Flds
        strSubject = .Item("urn:schemas:httpmail:subject")

        if instr(strSubject, "Ref=") = 0 then
            strSubject = Replace(strSubject, CHR(9), "") & " (Ref=" & hex(replace(timer(), ".", "")) & hex(rnd()) & ")"
            .Item("urn:schemas:httpmail:subject") = strSubject
            .Update
        else
            strSubject = LEFT(strSubject, instr(strSubject, "(Ref=") - 1) & MID(strSubject, instr(instr(strsubject, "(Ref="), strSubject, ")") + 1, Len(strSubject)) & " (Ref=" & hex(replace(timer(), ".", "")) & hex(rnd()) & ")"
            .Item("urn:schemas:httpmail:subject") = strSubject
            .Update
        end if
    End With

    Msg.Datasource.Save

    EventStatus = 0 'Run next sink

End Sub

</SCRIPT>

次に、スクリプトを登録するには、これを実行します。

Cscript smtpreg.vbs /add 1 onarrival SMTPAddRef CDO.SS_SMTPOnArrivalSink "mail from=*"
Cscript smtpreg.vbs /setprop 1 onarrival SMTPAddRef Sink ScriptName "C:\ENTERPATH\SMTPRef.vbs"

スクリプトを登録解除するには、フォローを実行します。

cscript smtpreg.vbs /remove 1 onarrival SMTPAddRef

最も回復力のある方法は、X分ごとに新しいメールをチェックするタイマーベースのシステムを作成することです。

私が望んでいたほど滑らかではありませんが、そうするでしょう。

これが他の人に役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top