Many a times I have seen that admins are finding it difficult to send multiple emails using powershell version 1.0 or 2.0.
This is because they need to use multiple $message.To.Add
To make it super easy for legacy powershell version I am sharing the send-email function that you can embed in your scripts & than just call it as below example:
Send-Email -From “user2@labtest.com” -To “user1@labtest.com”,”user2@labtest.com” -subject “Test Email Function” -body “Test” -smtpserver smtpserver -cc “user1@labtest.com”,”user2@labtest.com” -bcc “user1@labtest.com”,”user2@labtest.com” -attachment “c:\attach.txt”
Download Link:
https://gallery.technet.microsoft.com/scriptcenter/Email-Function-2960b260
Let me know if you want to alter or add some thing to the function.
<# .NOTES =========================================================================== Created on: 12/14/2016 12:55 PM Created by: Vikas Sukhija Organization: Filename: =========================================================================== .DESCRIPTION Send-Email function for PS2.0 Example: Send-Email -From "user2@labtest.com" -To "user1@labtest.com","user2@labtest.com" -subject "Test Email Function" -body "Test" -smtpserver smtpserver -cc "user1@labtest.com","user2@labtest.com" -bcc "user1@labtest.com","user2@labtest.com" -attachment "c:\attach.txt" #> function Send-Email { [CmdletBinding()] param ( $From, [array]$To, [array]$bcc, [array]$cc, $body, $subject, $attachment, $smtpserver ) $message = new-object System.Net.Mail.MailMessage $message.From = $from if ($To -ne $null) { $To | ForEach-Object{ $to1 = $_ $to1 $message.To.Add($to1) } } if ($cc -ne $null) { $cc | ForEach-Object{ $cc1 = $_ $cc1 $message.CC.Add($cc1) } } if ($bcc -ne $null) { $bcc | ForEach-Object{ $bcc1 = $_ $bcc1 $message.bcc.Add($bcc1) } } $message.IsBodyHtml = $True if ($subject -ne $null) { $message.Subject = $Subject } if ($attachment -ne $null) { $attach = new-object Net.Mail.Attachment($attachment) $message.Attachments.Add($attach) } if ($body -ne $null) { $message.body = $body } $smtp = new-object Net.Mail.SmtpClient($smtpserver) $smtp.Send($message) } ##################################################################################
Thanks for reading and downloading
Tech Wizard
Hi Vikas, I really like your post on scripts. Do you have any script which can be used for logging the output in any other script ? I just need the functions for logging purposes so that I can use those functions in any other script.
Regards Jai
On Wed, Dec 14, 2016 at 8:16 PM, Microsoft Technologies Blog wrote:
> Vikas Sukhija posted: “Many a times I have seen that admins are finding it > difficult to send multiple emails using powershell version 1.0 or 2.0. This > is because they need to use multiple $message.To.Add To make it super easy > for legacy powershell version I am sharing the” >
Thanks Jai, you Can refer my powershell cheat sheet, it has a code for logging.