NotifyAsHTML.psm1
<#
.SYNOPSIS v1.0 Send Mail Notification with HTML Table format .DESCRIPTION Send Mail Notification with HTML Table format, with data supplied from Object Collection .NOTES NotifyAsHTML is an Utility Function where you can Send Mail Notification with data Collection Object in HTML Format table. .EXAMPLE $MyArray = @() foreach ($Num in 10,11,12,13,14) { $a = $Num $Obj = [PSCustomObject]@{ PartySeq = $a TypeName = 'Test-' + $a } $MyArray += $Obj } $From = "someone@domain.com" $TO = @("person1@domain.com") $cc = @("person2@domain.com") NotifyAsHTML -ObjCollect $MyArray -FieldString PartySeq,TypeName -BodyHeader "Testing now" -SmtpServer email.domain.com -MailSubject "Test Mail" -PostContent "Automated Mail" -MailFrom $From -MailTo $TO -MailCc $cc -Priority High -BGColorCode 'Light Yellow' -THColorCode 'Light Grey' -TDColorCode 'Light Green' #> function NotifyAsHTML { Param ( [Parameter(Mandatory=$true, Position=0)] [object] $ObjCollect, [Parameter(Mandatory=$true, Position=1)] [object] $FieldString, [Parameter(Mandatory=$true, Position=2)] [string] $BodyHeader, [Parameter(Mandatory=$true, Position=3)] [string] $PostContent, [Parameter(Mandatory=$true, Position=4)] [object] $MailFrom, [Parameter(Mandatory=$true, Position=5)] [object] $MailTo, [Parameter(Mandatory=$true, Position=6)] [object] $MailCc, [Parameter(Mandatory=$true, Position=7)] [string] $MailSubject, [Parameter(Mandatory=$true, Position=8)] [string] $SmtpServer, [ValidateSet("High", "Low", "Normal")] [string] $Priority, [ValidateSet("Light Yellow", "Light Red", "Light Grey","Light Pink","Light Blue","Light Green","Light Purple","Default")] [string] $BGColorCode, [ValidateSet("Light Yellow", "Light Red", "Light Grey","Light Pink","Light Blue","Light Green","Light Purple","Default")] [string] $THColorCode, [ValidateSet("Light Yellow", "Light Red", "Light Grey","Light Pink","Light Blue","Light Green","Light Purple","Default")] [string] $TDColorCode ) # Sending Warning/Error Notification ################################################################################################### $a = "<style>" switch ($BGColorCode) { 'Light Yellow' {$BG = "#F1FDBF"} 'Light Red' {$BG = "#FCD3BC"} 'Light Grey' {$BG = "#F0EAE7"} 'Light Pink' {$BG = "#FCC2D8"} 'Light Blue' {$BG = "#CFD0FB"} 'Light Green' {$BG = "#AEFBAE"} 'Light Purple' {$BG = "#F6A2FC"} 'Default' {$BG = "#FAFAB9"} } switch ($THColorCode) { 'Light Yellow' {$TH = "#F1FDBF"} 'Light Red' {$TH = "#FCD3BC"} 'Light Grey' {$TH = "#F0EAE7"} 'Light Pink' {$TH = "#FCC2D8"} 'Light Blue' {$TH = "#CFD0FB"} 'Light Green' {$TH = "#AEFBAE"} 'Light Purple' {$TH = "#F6A2FC"} 'Default' {$TH = "#FAFAB9"} } switch ($TDColorCode) { 'Light Yellow' {$TD = "#F1FDBF"} 'Light Red' {$TD = "#FCD3BC"} 'Light Grey' {$TD = "#F0EAE7"} 'Light Pink' {$TD = "#FCC2D8"} 'Light Blue' {$TD = "#CFD0FB"} 'Light Green' {$TD = "#AEFBAE"} 'Light Purple' {$TD = "#F6A2FC"} 'Default' {$TD = "#FAFAB9"} } $a = $a + "BODY{background-color:$BG;}" $a = $a + "TABLE{border-width: 0px;width:100%;border-style: solid;border-color: black;border-collapse: collapse;}" $a = $a + "TH{border-width: 1px;padding: 1px;border-style: solid;border-color: black;background-color:$TH}" $a = $a + "TD{border-width: 1px;padding: 1px;border-style: solid;border-color: black;background-color:$TD}" $a = $a + "</style>" $html = $ObjCollect | Select-Object $FieldString | ConvertTo-HTML -head $a -body "<b>$BodyHeader</b><br>" -PostContent "<br><b>$PostContent</b>" | Out-String Send-MailMessage -From $MailFrom -To $MailTo -cc $MailCc -Subject $MailSubject -SmtpServer $SmtpServer -Body $html.ToString() -BodyAsHtml -Priority $Priority } Export-ModuleMember -Function 'NotifyAsHTML' |