【发布时间】:2017-10-04 00:25:37
【问题描述】:
运行以下脚本时出现此错误:
Send-MailMessage:无法验证参数“主题”的参数。参数为 null 或空。提供一个不为 null 或空的参数,然后重试该命令。
电子邮件仍然发送成功,主题显示正确。
$dir = "C:\Users\user\Desktop\Lists\TodaysLists"
$SMTPServer = "192.168.1.111"
$Time = (Get-Date).ToString('MM/dd/yyyy hh:mm tt')
$japan = @{
Name = 'Japan'
From = "me@me.com
To = "you@me.com"
Cc = "him@me.com"
}
$ireland = @{
Name = 'Ireland'
From = "me@me.com
To = "you@me.com"
Cc = "him@me.com"
}
$Regions = @()
$Regions += New-Object PSObject -Property $japan
$Regions += New-Object PSObject -Property $ireland
foreach ($Region in $Regions) {
$Attachment = Get-ChildItem -Path $dir -Filter "*$($Region.Name)*" -Recurse
$AttachmentName = $Attachment.BaseName
$Subject = "$AttachmentName"
$Body = "Please find attached the Report for $($Region.Name).
Produced @ $Time
Regards,
John Doe
"
Send-MailMessage -From $Region.From -To $Region.To -CC $Region.Cc -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Attachments $Attachment.FullName
$Attachment | Move-Item -Destination "C:\Users\user\Desktop\Lists\oldLists"
}
【问题讨论】:
-
可能不相关,但您的哈希表的
From值缺少右双引号。 -
代码尝试发送两封电子邮件,您说“电子邮件发送正确” - 简单的答案是一封正确发送,一封失败...?
-
可能值得将
-Verbose添加到Send-MailMessage以帮助您查找故障。
标签: windows powershell