среда, 3 декабря 2008 г.

Отправка папки по почте.

Иногда, возникает необходимость отправить по почте большой файл или кучу маленьких. Но в нашей сети с некоторой целью, мне не всегда понятной, на вышестоящих релаях установлено ограничение на размер письма. Из-за этого большие письма не пролазят. Для того чтобы с этим справиться пришлось долго бороться с ленью и самим собой. В итоге родился следующий скрипт:


function send-folder { param ($folder, $from, $to, $server)
# $folder - путь к папке с файлами
# $from- от кого
# $to - кому
# $server - IP почтового сервера

foreach ($item in (Get-ChildItem $folder where-object {!$_.psiscontainer})) {
$mailMessage = New-Object System.Net.Mail.MailMessage ($from, $to)
$attachment = New-Object System.Net.Mail.Attachment ($item.FullName)
$mailMessage.Attachments.Add($attachment)

$client = New-Object System.Net.Mail.SmtpClient ($server)
Write-Host 'Отправка сообщения ' $item.FullName
$client.Send($mailMessage)
Write-Host 'Сообщение ' $item.FullName ' отправлено'
}
}


Этот скрипт отправляет содержимое каталога по одному файлу указанному адресату через указаный мэйл сервер.
Отправить комментарий