Может кто-нибудь, пожалуйста, помогите мне разобраться в этой части.
#Mail Configuration
$smtpUser = "email@domain.com"
$smtppass = ConvertTo-SecureString "PasswordAsPlainText" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential -ArgumentList ($smtpuser, $smtppass)
$ToAddress = "toaddress@domain.com"
$FromAddress = "send@domain.com"
$SMTPSERVER = "smtp.office365.com"
$SMTPPORT = "587"
$MailParam = @{
To = $ToAddress
From = $FromAddress
Subject = $subject
Body = $Mail
SMTPServer = $SMTPServer
Port = $SMTPPORT
Credential = $pscred
}
#Send Email
$GetChildItem = Get-ChildItem -Path C:\Temp
if ($GetChildItem -ne $Null)
{
Write-Host "Backup Success"
$subject = "$env:COMPUTERNAME SQL Backup Success"
$Mail = "SQL Backup Succeded on the server, please see the attached report for more details"
$attachment = $reportfile
Send-MailMessage @MailParam -BodyAsHtml -usessl
#Exit
}
if ($GetChildItem -eq $Null)
{
Write-Host "Backup Failed"
$subject = "$env:COMPUTERNAME SQL Backup Failed"
$Mail = "SQL Backup Failed on the server, please see the attached report for more details"
$attachment = $reportfile, $debuglog
Send-MailMessage @MailParam -usessl -BodyAsHtml
#Exit
}
Теперь я не думаю, что что-то не так с кодом выше, я не опытный кодер, но я могу в значительной степени копировать и вставлять: ) и возьмите что-нибудь оттуда, чтобы это сработало для меня.
Проблема с приведенным выше кодом заключается в том, что при запуске он не работает в первый раз, но при повторном запуске он работает нормально. Ошибка, которую вы получаете в первый раз:
Send-MailMessage: Невозможно проверить аргумент в параметре 'Body'. Аргумент нулевой или пустой. Укажите аргумент, который не является пустым или пустым, а затем повторите команду. В C: \ Users \ Aasim \ Desktop \ Untitled1.ps1: 29 char: 26 + Send-MailMessage @MailParam -BodyAs Html -usessl + ~~~~~~~~~~ + CategoryInfo: InvalidData: ( :) [Send-MailMessage], ParameterBindingValidationException + FullyQualifiedErrorId: ParameterArgumentValidationError, Microsoft.PowerShell.Commands.SendMailMessage
Я не уверен, в чем проблема, и почему она не работает только в первый раз, но работает каждый следующий раз, пока вы не закроете и снова не откроете сценарий.
По сути, я создаю сценарий резервного копирования SQL, который выполняет резервное копирование баз данных на наш сетевой ресурс и затем отправляет мне электронное письмо, независимо от того, был ли он успешным или нет. пока остальная часть сценария работает просто отлично.