나는 EWS와 powershell을 사용하여 비슷한 것을 만들었습니다. 당신은 EWS가 here
그럼 당신이 내 스크립트의 예이다는 Exchange 웹 서비스
를 사용하는 파워 쉘의 스크립트를 생성 할 수 있습니다 다운로드 할 수 있습니다 : 다음
$MailboxName = "[email protected]"
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP1)
$service.TraceEnabled = $false
$service.Credentials = New-Object System.Net.NetworkCredential("name","password", "domain")
$service.Url="https://mail.yourdomain.com.au/ews/exchange.asmx"
try{
$fldArray = new-object Microsoft.Exchange.WebServices.Data.FolderId[] 1
$Inboxid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox,$MailboxName)
$fldArray[0] = $Inboxid
$stmsubscription = $service.SubscribeToStreamingNotifications($fldArray, [Microsoft.Exchange.WebServices.Data.EventType]::NewMail)
$stmConnection = new-object Microsoft.Exchange.WebServices.Data.StreamingSubscriptionConnection($service, 30);
$stmConnection.AddSubscription($stmsubscription)
Register-ObjectEvent -inputObject $stmConnection -eventName "OnNotificationEvent" -Action {
foreach($notEvent in $event.SourceEventArgs.Events){
[String]$itmId = $notEvent.ItemId.UniqueId.ToString()
$message = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($event.MessageData,$itmId)
IF ($message.Subject -eq "execprocess"){
Start-Process "mybat.bat"
}
}
} -MessageData $service
}catch [Exception] {
Get-Date | Out-File C:\logs\logError.txt -Append
"Error : "+ $_.Exception.Message
}
Register-ObjectEvent -inputObject $stmConnection -eventName "OnDisconnect" -Action {$event.MessageData.Open()} -MessageData $stmConnection
$stmConnection.Open()
을, 2 스크립트를 실행 한 모니터링해야하는 모든 계정에 대해
은 여기에 원래의 예를 참조 ->
Source
나는 그것을 통해 수행 할 수있는 EWS와 비슷한 보았다. 하지만 내가 필요한 건 그 과정을 시작하기위한 교환 일 뿐이야 ... EWS와 함께 "핑"교환 서버가 있어야하고 새 메일이 있는지 확인해야하는 다른 쪽이있다 .. 새 메일 도착시 조치를 실행하려면 교환이 필요하다. . 만약 외부 프로그램을 실행하지 않았다면 최소한 특정 URL을 호출하여 등의 메일이 도착하면 [email protected]이 http://somesrver.com/script.php?id=1 을 호출하고 test2 @ example을 호출합니다. .com을 호출하려면 http://someserver.com/script.php?id=2 감사합니다. Marko – Marko3d
코드를 처리 할 수있는 유일한 곳은 전송 에이전트입니다. 모든 단일 메시지는 전송 파이프 라인을 통과하기 때문에이를 트리거하는 에이전트를 작성할 수 있습니다. 에이전트가 LPC/WCF를 통해 상자에 서비스를 ping하는 대신 전송 서비스 자체에 미치는 영향을 제한하는 in-proc 작업을 수행합니다. –