Question:
I’m using a powershell script that will create an HTML report of disk space and send it as an email. Unfortunately I’m unable to get the script to send to more than one email recipient. The script I’m using can be found here:
http://gallery.technet.microsoft.com/scriptcenter/6e935887-6b30-4654-b977-6f5d289f3a63
Here are the relevant parts of the script…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$freeSpaceFileName = "FreeSpace.htm" $serverlist = "C:\sl.txt" $warning = 90 $critical = 75 New-Item -ItemType file $freeSpaceFileName -Force Function sendEmail { param($from,$to,$subject,$smtphost,$htmlFileName) $body = Get-Content $htmlFileName $smtp= New-Object System.Net.Mail.SmtpClient $smtphost $msg = New-Object System.Net.Mail.MailMessage $from, $to, $subject, $body $msg.isBodyhtml = $true $smtp.send($msg) } $date = ( get-date ).ToString('yyyy/MM/dd') $recipients = "to1@email.com", "to2@email.com" sendEmail from@email.mail $recipients "Disk Space Report - $Date" smtp.server $freeSpaceFileName |
I’m getting the following error
1 2 3 4 5 6 7 |
New-Object : Exception calling ".ctor" with "4" argument(s): "The specified string is not in the form required for an e -mail address." At E:\DiskSpaceReport.ps1:129 char:18 + $msg = New-Object <<<< System.Net.Mail.MailMessage $from, $to, $subject, $body + CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand |
Answer:
The MailMessage constructor you are using only takes one email address. See the MSDN documentation
http://msdn.microsoft.com/en-us/library/5k0ddab0.aspx
You should try using Send-MailMessage
instead because it’s -To
parameter accepts an array of addresses
Send-MailMessage -from from@email.mail -To $recipients -Subject "Disk Space Report - $Date" -smptServer smtp.server -Attachments $freeSpaceFileName
Note: Send-MailMessage was introduced in PowerShell v2.0 so that’s why there are still examples that use other commands. If you need to use v1.0, then I will update my answer.