Я воспользовался предложением Фалаха Абу Хасана, и оно очень хорошо подошло для моих требований к получению почты через IMAP!
Как получить IMAPX.DLL
Github-репозиторий для imapx находится здесь: https://github.com/azanov/imapx
К сожалению, вам нужно скомпилировать его самостоятельно с помощью Visual Studio, чтобы получить imapx.dll.
Создание примераСценарий Powershell
Сценарий и DLL должны располагаться сбоку и могут быть интегрированы с этим:
$path = Split-path $script:MyInvocation.MyCommand.Path
[Reflection.Assembly]::LoadFile(“$path\imapx.dll”)
Следующий пример сценария, вдохновленный ответом Фалаха Абу Хасана, работал оченьхорошо для меня:
$path = Split-path $script:MyInvocation.MyCommand.Path
[Reflection.Assembly]::LoadFile(“$path\imapx.dll”)
### Create a client object
$client = New-Object ImapX.ImapClient
$client.Behavior.MessageFetchMode = "Full"
$client.Host = "Servername"
$client.Port = 993
$client.UseSsl = $true
$client.IsDebug = $true
$client.ValidateServerCertificate = $true
$client.Connect()
$user = "login@domain"
$pass = 'password'
$client.Login($user, $pass)
$messages = $client.Folders.Inbox.Search("ALL", $client.Behavior.MessageFetchMode, 100)
write-host "Count found: $($messages.count)"
foreach($m in $messages){
write-host "Processing Subject: $($m.Subject)"
}