6 Sep, 2019

Рассылка файлов на email по маске

Скрипт для PowerShell рассылает файлы на email согласно имен файлов.
Данный скрипт предназначен для автоматизации рассылки счетов бухгалтерам предприятий. Скрипт ищет в каталоге файлы по имени (в моем случае файлы включают в имя ИИН компании) и рассылает их вложениями на email адреса.

$user = "sendmail@mel.kiev.ua"
$enterPass = Read-Host "Введите пароль для отправки почты"
$pass = ConvertTo-SecureString -String "$enterPass" -AsPlainText -Force
$smtpServer = "smtp.gmail.com"
$port = 587
$encoding = [System.Text.Encoding]::UTF8

$hashPath = @{
    "205182271"	= "natalia.prushkovska@mel.kiev.ua"
    "205179750"	= "oksana.pidruchna@mel.kiev.ua"
    "205179751" = "oksana.pidruchna@mel.kiev.ua"
    "205182296"	= "oksana.pidruchna@mel.kiev.ua"
    "205190356"	= "Igor.Popovich@mel.kiev.ua"
    "205301856"	= "yulia.nazarenko@mel.kiev.ua"
    "205183830"	= "natalia.prushkovska@mel.kiev.ua"
    "205179911"	= "Igor.Popovich@mel.kiev.ua"
}

$hashPath.GetEnumerator() | % { 
    
$filterWord = $($_.key)
$userEmail = $($_.Value)

$file = Get-ChildItem -Path "c:\bills\" -Recurse -Filter "*$filterWord*" | Sort-Object LastWriteTime -Descending | Select-Object -First 5

Write-Host "Отправка счетов на: $userEmail"
Write-Output -Verbose "Attaching File : $($file.FullName)"

$mailParam = @{
    To = "$userEmail"
    From = "sendmail@mel.kiev.ua"
    Subject = 'Счета LifeCell'
    Body = 'Добрый день, во вложении счета на оплату телефонной связи'
    SmtpServer = $smtpServer
    Port = $port
    Credential = New-Object System.Management.Automation.PSCredential ($user, $pass)#remark out if not using user/pass
    Attachments = $file.fullname 
}


Send-MailMessage @mailParam -Verbose -UseSsl -Encoding $encoding
#Удаление файлов после отправки
#Get-ChildItem -Path "c:\tst\" -Recurse -Filter "*$filterWord*" | Sort-Object LastWriteTime -Descending | Select-Object -First 5 | Remove-Item 
"Файлы отправлены"
Write-Host "$($_.value["Entry 1"])" 
}

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *