#
# smartd mailer script
#
# Copyright (C) 2016 Christian Franke
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# You should have received a copy of the GNU General Public License
# (for example COPYING); If not, see .
#
# $Id$
#
# Parse command line and check environment
$dryrun = $false
if (($args.Count -eq 1) -and ($args[0] -eq "--dryrun")) {
$dryrun = $true
}
$toCsv = $env:SMARTD_ADDRCSV
$subject = $env:SMARTD_SUBJECT
$file = $env:SMARTD_FULLMSGFILE
if (!((($args.Count -eq 0) -or $dryrun) -and $toCsv -and $subject -and $file)) {
echo `
"smartd mailer script
Usage:
set SMARTD_ADDRCSV='Comma separated mail addresses'
set SMARTD_SUBJECT='Mail Subject'
set SMARTD_FULLMSGFILE='X:\PATH\TO\Message.txt'
.\$($MyInvocation.MyCommand.Name) [--dryrun]
"
exit 1
}
# Read configuration
$from = "smartd daemon "
. .\smartd_mailer.conf.ps1
if (!$?) { exit 1 }
# Create parameters
$to = $toCsv.Split(",")
$body = Get-Content -Path $file | Out-String
$parm = @{
SmtpServer = $smtpServer; From = $from; To = $to
Subject = $subject; Body = $body
}
if ($port) {
$parm += @{ Port = $port }
}
if ($useSsl) {
$parm += @{ useSsl = $true }
}
if ($username -and ($password -or $passwordSecure)) {
if (!$passwordSecure) {
$secureString = ConvertTo-SecureString -String $password -AsPlainText -Force
} else {
$secureString = ConvertTo-SecureString -String $passwordSecure
}
$credential = New-Object -Typename System.Management.Automation.PSCredential -Argumentlist $username,$secureString
$parm += @{ Credential = $credential }
}
# Send mail
if ($dryrun) {
echo "Send-MailMessage" @parm
} else {
Send-MailMessage @parm
if (!$?) { exit 1 }
}