Try/Catch block в скрипте не работает

62
8

Предпосылка сценария ниже заключается в том, что мне нужно, чтобы он просматривал папку PDF файлов, которая будет называться после того, для кого они предназначены, и это будет соответствовать имени электронной почты в сопроводительном CSV файле и генерировать электронное письмо, которое отправляет соответствующие им PDF файлы.

Проблема в том, что у нас есть ограничение на отправку/получение 10 МБ, поэтому я пытался выяснить блок try/catch который отправит кому-то сообщение, если некоторые файлы PDF не отправятся, но в этом текущем состоянии, похоже, он сталкивается с ошибкой и не отправляет сообщения кому-либо еще.

Может ли кто-нибудь дать некоторые предложения о том, как это сделать, или о каких-либо более эффективных решениях?

Я смотрел на do/while чтобы узнать, могу ли я заставить его зацикливаться до тех пор, пока вложенные вложения не будут равны 10 МБ, а затем отправит это сообщение и перезапустится, но не сможет понять это.

Любая помощь ВОЗМОЖНО высоко ценится, и дайте мне знать, если что-то не так/вам нужно больше информации.

$CSV = Import-Csv "\\Server\Share\NamesAndEmails.csv"
$PDFFolder = "\\Server\Share\PDF Folder"

$ErrorActionPreference = "Continue"

ForEach($User in $CSV)
{
$PDFs = Get-ChildItem -Path $PDFFolder | Where-Object { $_.Extension -eq ".pdf" -and $_.Name -like "*$($User.Name)*" }

$to = $User.Email
$from = "email@domain.com"
$smtp = "smtp.domain.com"
$body = "Please see attachments."
$attachments = @()

ForEach($PDF in $PDFs)
{
$attachments += $PDF.FullName
}

$MessageParameters = @{
From = $from
To = $to
Subject = "Email subject"
Body = $body
SmtpServer = $smtp
Attachments = $attachments
}

try
{
Send-MailMessage @MessageParameters
}
Catch
{
Send-MailMessage '
-smtp smtp.domain.com '
-to "Name <email@domain.com>" '
-from "Name <email@domain.com>" '
-subject "Failed to send post for $($user.Name)" '
-body "Please go to \\... and resend PDF for $($user.name) across multiple messages as necessary." '
}
}

спросил(а) 2015-06-23T15:08:00+03:00 5 лет, 8 месяцев назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема