ClearMailbox.ps1

На вопрос с forum.sysadmins.ru

Подключается к почтовому ящику по протоколу pop3, и удаляет все сообщения.

ClearMailbox.ps1
######################################################## ## ## Script name: ClearMailbox.ps1 ## ## Description: Removes all messages from mailbox by POP3 protocol ## ## Usage: .\ClearMailbox.ps1 -server myserver -user mydomain\ivanov -password pass ## ## Date: 29.11.2007 ## ## Author: Gusev Vasily ## ## Url: https://xaegr.wordpress.com ## ######################################################## param([string]$server, [int]$port=110, [string]$username, [string]$password) function write-stream([System.Net.Sockets.NetworkStream]$n, [String]$s) { "> $s" $arr = "$s`r`n".ToCharArray() $n.Write($arr, 0, $arr.Length) } $Client = New-Object System.Net.Sockets.TcpClient $Client.Connect($server,$port) $Stream = $Client.GetStream() $Reader = New-Object System.IO.StreamReader($Client.GetStream()) $r = $Reader.ReadLine() if ($r -notlike "+OK*"){throw "Unable to connect: $r"}else{$r} write-stream $Stream "user $username" $Reader.ReadLine() write-stream $Stream "pass $password" $r = $Reader.ReadLine() if ($r -notlike "+OK*"){throw "Unable to login: $r"}else{$r} write-stream $Stream "stat" $r = $Reader.ReadLine() if ($r -match "^\+OK (\d+) (\d+)") { $r $msgs,$bytes = $matches[1],$matches[2] "$bytes bytes in $msgs messages" Write-Warning "PRESS CTRL+C TO CANCEL REMOVAL!!!" Read-Host 1..$msgs | foreach {write-stream $Stream "dele $_"; $Reader.ReadLine()} write-stream $Stream "stat" $r = $Reader.ReadLine() if ($r -eq "+OK 0 0") {"All messages removed"} write-stream $Stream "quit" } else {throw "$r"}
Опубликовано в PowerShell. 7 комментариев »

комментариев 7 to “ClearMailbox.ps1”

  1. abeshkov Says:

    А такой же скрипт для IMAP сделать можешь? Думаю многим админам он пригодится.

  2. Loran Says:

    Собственно заинтересовался PS в связи с тем, что похоже только он может помочь мне с одной задачкой.
    У меня дома Стрим. IP он выдает при подключении каждый раз разный. И довольно часто падает. При этом правда переподключается, но ИП уже другой. А мне на работе нужно знать его ИП для управления RAdmin’ом.
    Вопрос:
    Можно ли на PS написать скрипт, который бы когда ИП менялся высылал его мне на почту?

  3. xaegr Says:

    2 abeshkov: Я вообще сначала думал через outlook сделать🙂 Но потом подумал что pop3 будет проще всего. IMAP… Даже не знаю, не уверен что там такой же простой протокол как у pop3… Я посмотрю🙂

    Есть кстати snapin net-cmdlets, там туева хуча командлетов для всевозможных протоколов от snmp до imap, но они платные…

  4. xaegr Says:

    2 Loran:
    У меня тоже стрим, и идея была именно такая же🙂
    Правда решил использовать сервис dyndns, мой роутер линксисовский умеет его обновлять самостоятельно, либо можно поставить программу клиента.
    Если это не устраивает — пиши, попробую сделать, интересно🙂

  5. Loran Says:

    2 xaegr:
    А не мог бы дать ссылку на клиент? Я вроде там все прошерстил, но его не нашел..


Обсуждение закрыто.

%d такие блоггеры, как: