Вопрос получить почту через powershell

Apossum

Участник
Коллеги, доброго утра! Задача - получить почту с почтового ящика по протоколу pop3. Как это реализовать на powershell ? Может у кого есть уже готовый скрипт или кусок кода - буду благодарен. ;)
 

UEF

Модератор
Команда форума
Коллеги, доброго утра! Задача - получить почту с почтового ящика по протоколу pop3. Как это реализовать на powershell ? Может у кого есть уже готовый скрипт или кусок кода - буду благодарен. ;)
а что вы именно хотите реализовать? Я имею в виду там же много всего - заголовки, темы и т.п . Можете задачу уточнить?:unsure:
 

devito

Случайный прохожий
Образец скрипта который подключается к ящику поп Pop3 и все удаляет. Как вариант можно взять за основу и переделать под свои нужды. Скрипт не проверял - некогда.

Код:
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"}
Источник
 

deadushka

Участник
Коллеги, доброго утра! Задача - получить почту с почтового ящика по протоколу pop3. Как это реализовать на powershell ? Может у кого есть уже готовый скрипт или кусок кода - буду благодарен. ;)
Функция подключения к серверу по pop3
Код:
function makePOP3Client
   {
   Param
      (
      [string] $server,
      [int] $port,
      [bool] $enableSSL,
      [string] $username,
      [string] $password
      )

   $pop3Client = New-Object OpenPop.Pop3.Pop3Client

   $pop3Client.connect( $server, $port, $enableSSL )

   if ( !$pop3Client.connected )
      {
      throw "Unable to create POP3 client. Connection failed with server $server"
      }

   $pop3Client.authenticate( $username, $password )

   return $pop3Client
   }
 
Верх Низ