Powershell Send-MailMessage Attachments Проверьте, существует ли файл, иначе измените $ body - PullRequest
1 голос
/ 31 января 2012

Я использую функцию Send-MailMessage для отправки файлов журнала по электронной почте. Я отредактировал профиль PowerShell таким образом, чтобы файл стенограммы создавался автоматически. Если резервная копия обнаруживает ошибку, вызывается функция SendMailErr.

Это работает, но я хотел бы добавить файл с расшифровкой и файл журнала в качестве вложения (если они существуют). Если они не существуют, я хотел бы изменить текст письма на «Транскрипт не существует и т. Д.»

Мой неуклюжий код в его текущем состоянии

# Mail Settings
$to = "first.lastname@unisa.edu.au"
$from = "$env:ComputerName@unisa.edu.au"
$Smtp = "mx-out.company.edu.au"
$body = "Please review attached log file $seperator See $blog for WBAdmin Log"
$attachments = "$logfile","$trans" | Where-Object {Test-Path $_ }

#Transcript File
$trans = Get-ChildItem $bLog ` 
  -filter "$env:computername-PSTranscript-$(get-date -format ddMMyyyy).log" 
  -Name

function SendMailErr { 
$MessageParameters = @{
    From = $from
    To = $to
    Subject = "ALERT: Backup Failed for $env:ComputerName.$env:USERDNSDOMAIN `
                     - $((Get-Date).ToShortDateString())"
    Body = $body      
    SmtpServer = $Smtp
    Priority = "High"
    Attachments = $attachments
}
Send-MailMessage @MessageParameters 
Exit
}

Любой совет будет принят с благодарностью.

Спасибо.

Amelia

1 Ответ

1 голос
/ 31 января 2012

Обычно я подхожу к этому так:
Начнем с пустого массива для $ body.Когда вы сталкиваетесь с условиями, о которых хотите добавить текст в тело, добавьте эти строки, используя + =.Прежде чем отправить его, запустите его через строку, чтобы преобразовать его в строку и добавить символы новой строки.

$body = @()

 if (test-path $logfile){$body += "Log file $logfile attached"}
     else {$body += "Log file $logfile was not found"}

 if (test-path $trans){$body += "Transcript file $trans attached"}
     else {$body += "Transcript file $trans was not found"}

 $body = $body | out-string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...