Private/Send-Log.ps1
Function Send-Log { <# .SYNOPSIS Emails completed log file to list of recipients .DESCRIPTION Emails the contents of the specified log file to a list of recipients .PARAMETER SMTPServer Mandatory. FQDN of the SMTP server used to send the email. Example: smtp.google.com .PARAMETER LogPath Mandatory. Full path of the log file you want to email. Example: C:\Windows\Temp\Test_Script.log .PARAMETER EmailFrom Mandatory. The email addresses of who you want to send the email from. Example: "admin@9to5IT.com" .PARAMETER EmailTo Mandatory. The email addresses of where to send the email to. Seperate multiple emails by ",". Example: "admin@9to5IT.com, test@test.com" .PARAMETER EmailSubject Mandatory. The subject of the email you want to send. Example: "Cool Script - [" + (Get-Date).ToShortDateString() + "]" .INPUTS Parameters above .OUTPUTS Email sent to the list of addresses specified .NOTES Version: 1.0 Author: Luca Sturlese Creation Date: 05.10.12 Purpose/Change: Initial function development. Version: 1.1 Author: Luca Sturlese Creation Date: 02/09/15 Purpose/Change: Changed function name to use approved PowerShell Verbs. Improved help documentation. Version: 1.2 Author: Luca Sturlese Creation Date: 02/09/15 Purpose/Change: Added SMTPServer parameter to pass SMTP server as oppposed to having to set it in the function manually. .LINK http://9to5IT.com/powershell-logging-v2-easily-create-log-files .EXAMPLE Send-Log -SMTPServer "smtp.google.com" -LogPath "C:\Windows\Temp\Test_Script.log" -EmailFrom "admin@9to5IT.com" -EmailTo "admin@9to5IT.com, test@test.com" -EmailSubject "Cool Script" Sends an email with the contents of the log file as the body of the email. Sends the email from admin@9to5IT.com and sends the email to admin@9to5IT.com and test@test.com email addresses. The email has the subject of Cool Script. The email is sent using the smtp.google.com SMTP server. #> [CmdletBinding()] Param ( [Parameter(Mandatory=$true,Position=0)][string]$SMTPServer, [Parameter(Mandatory=$true,Position=1)][string]$LogPath, [Parameter(Mandatory=$true,Position=2)][string]$EmailFrom, [Parameter(Mandatory=$true,Position=3)][string]$EmailTo, [Parameter(Mandatory=$true,Position=4)][string]$EmailSubject ) Process { Try { $sBody = ( Get-Content $LogPath | Out-String ) #Create SMTP object and send email $oSmtp = new-object Net.Mail.SmtpClient( $SMTPServer ) $oSmtp.Send( $EmailFrom, $EmailTo, $EmailSubject, $sBody ) Exit 0 } Catch { Exit 1 } } } |