linacat2305
@linacat2305
It-girl

Автоматизация рассылки — что можно подправить?

Добрый день! Стоит задачка чтобы письмо высылалось от имени общего ящика - скрипт должен брать вложения из папки, ставить дату на день раньше и автоматом рассылать. У меня вышло вот так, но никак не могу побороть 2 момента - как сделать вложение всех файлов из папки не перечисляя их поименно и как сделать дату корректной на день назад без минут в контексте этой задачи. Строго не судите, я новичок, гуглом пользуюсь...

#Входящие данные сообщения:
$From = "123@123.ru"
$To = "234@234"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "234@123u"
$Password = "12345555"
$subject = "Сводка {0}" -f $dateBegin
$body = "Отчет по региону за {0}" -f $dateBegin
$dateBegin = ((get-date).adddays(-1).toshortdatestring())

#формируем сообщение в формате html:
$message = New-Object System.Net.Mail.MailMessage $From, $To
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = $body
$file = "C:\12\30.09.2017\30.09.2017.csv"

#Создаем два экземпляра класса
$att = New-object Net.Mail.Attachment($file)
$mes = New-Object System.Net.Mail.MailMessage
$mes.Attachments.Add($att)

#Отправляем:
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtp.Send($message)
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Ethril
как сделать дату корректной на день назад без минут

(get-date).adddays(-1).Date.toshortdatestring()

как сделать вложение всех файлов из папки не перечисляя их поименно

$mes = New-Object System.Net.Mail.MailMessage
(Get-ChildItem -Path 'C:\MyFolder').FullName | foreach { $mes.Attachments.Add( New-object Net.Mail.Attachment($_) ) }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы