Skip to content

Commit

Permalink
Added new Get-RejectionReport script which interacts directly with th…
Browse files Browse the repository at this point in the history
…e database. This is much faster.
  • Loading branch information
NETATWORK\hkrause committed Aug 10, 2017
1 parent 35e6a4b commit 37c8c51
Show file tree
Hide file tree
Showing 8 changed files with 334 additions and 38 deletions.
15 changes: 15 additions & 0 deletions Get-RejectionReport (Database)/Actions.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
declare @startdate datetime = convert(datetime, '{0}', 104)
declare @enddate datetime = convert(datetime, '{1}', 104)

select
name,
case
when Decision = 2 then 'Temporary Blocked'
when Decision = 3 then 'Permanently Blocked'
end Decision,
count(*) Count
from MessageTracking.Action a
join MessageTracking.MessageTrackEntry m
on a.MessageTrackId = m.id
where m.Sent >@startdate and m.Sent < @enddate and (m.status = 3 or m.status = 4) and (Decision = 2 or Decision = 3)
group by name, Decision
19 changes: 19 additions & 0 deletions Get-RejectionReport (Database)/BlockedMessageTracks.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
declare @startdate datetime = convert(datetime, '{0}', 104)
declare @enddate datetime = convert(datetime, '{1}', 104)

select
case
when WasReceivedFromRelayServer = 0 then 'Inbound'
when WasReceivedFromRelayServer = 1 then 'Outbound'
else 'Summary'
end Direction,
case
when Status = 1 then 'Success'
when Status = 3 then 'Temporary Blocked'
when Status = 4 then 'Permanently Blocked'
when Status is null then 'Summary'
end Status,
COUNT(*) Count
from MessageTracking.MessageTrackEntry
where Sent > @startdate and Sent < @enddate and (status = 1 or status = 3 or status = 4)
group by rollup (WasReceivedFromRelayServer, status)
11 changes: 11 additions & 0 deletions Get-RejectionReport (Database)/Filters.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
declare @startdate datetime = convert(datetime, '{0}', 104)
declare @enddate datetime = convert(datetime, '{1}', 104)

select
name,
count(*) Count
from MessageTracking.Filter f
join MessageTracking.MessageTrackEntry m
on f.MessageTrackId = m.id
where m.Sent > @startdate and m.Sent < @enddate and (m.status = 3 or m.status = 4) and (f.Scl > 0)
group by name
219 changes: 219 additions & 0 deletions Get-RejectionReport (Database)/Get-RejectionReport.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
param (
[Parameter(Mandatory=$false)][int] $NumberOfDaysToReport = 7,
[Parameter(Mandatory=$true)][string] $SMTPHost,
[Parameter(Mandatory=$false)][string] $ReportSender = "NoSpamProxy Report Sender <[email protected]>",
[Parameter(Mandatory=$true)][string] $ReportRecipient,
[Parameter(Mandatory=$false)][string] $ReportSubject = "Auswertung",
[Parameter(Mandatory=$false)][string] $SqlServer = "(local)",
[Parameter(Mandatory=$false)][pscredential] $Credential,
[Parameter(Mandatory=$false)][string] $Database = "NoSpamProxyAddressSynchronization"
)
$reportFileName = [Path]::Combine($Env:TEMP, "reject-analysis.html")
$totalRejected = 0
$tempRejected = 0
$permanentRejected = 0
$rblRejected = 0
$cyrenSpamRejected = 0
$cyrenAVRejected = 0
$surblRejected = 0
$characterSetRejected = 0
$wordRejected = 0
$contentrejected = 0
$greylistrejected = 0
$rdnsPermanentRejected = 0
$decryptPolicyRejected = 0
$dateStart = (Get-Date).AddDays(-$NumberOfDaysToReport)
$dateTo = Get-Date -format "dd.MM.yyyy"
$dateFrom = $dateStart.ToString("dd.MM.yyyy")

function New-DatabaseConnection() {
$connectionString = "Server=$SqlServer;Database=$Database;"
if ($Credential) {
$connectionString += "uid=" + $Credential.UserName + ";pwd=" + $Credential.Password + ";"
}
else {
$connectionString +="Integrated Security=True";
}
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString

$connection.Open()

return $connection;
}

function Coalesce-Zero($a) {
if ($a) { $a } else { 0 }
}

function Invoke-SqlQuery([string] $queryName) {
$connection = New-DatabaseConnection
try {
$command = $connection.CreateCommand()
$command.CommandText = (Get-Content "$queryName.sql") -f $dateFrom, $dateTo
$result = $command.ExecuteReader()
$table = new-object "System.Data.DataTable"
$table.Load($result)
return $table
}
finally {
$connection.Close();
}

}

"Getting MessageTracks..."
$blockedMessageStatistics = Invoke-SqlQuery "BlockedMessageTracks"
"Getting actions statistics..."
$actions = Invoke-SqlQuery "Actions"
"Getting filter statistics..."
$filters = Invoke-SqlQuery "Filters"
"Building report."

$totalMails = $blockedMessageStatistics | Where-Object {$_.Direction -eq "Summary" -and $_.Status -eq "Summary"} | Select-Object -ExpandProperty Count -First 1
$tempRejected = $blockedMessageStatistics | Where-Object {$_.Direction -eq "Inbound" -and ($_.Status -eq "Temporary Blocked")} | Select-Object -ExpandProperty Count -First 1
$permanentRejected = $blockedMessageStatistics | Where-Object {$_.Direction -eq "Inbound" -and ($_.Status -eq "Permanently Blocked")} | Select-Object -ExpandProperty Count -First 1
$totalRejected = $tempRejected + $permanentRejected
$totalRejected += $blockedMessageStatistics | Where-Object {$_.Direction -eq "Inbound" -and ($_.Status -eq "Temporary Blocked")} | Select-Object -ExpandProperty Count -First 1
$inboundmessages = $blockedMessageStatistics | Where-Object {$_.Direction -eq "Inbound" -and $_.Status -eq "Summary"} | Select-Object -ExpandProperty Count -First 1
$outboundmessages = $blockedMessageStatistics | Where-Object {$_.Direction -eq "Outbound" -and $_.Status -eq "Summary"} | Select-Object -ExpandProperty Count -First 1

$rblRejected = Coalesce-Zero ($filters | Where-Object {$_.Name -eq "realtimeBlocklist" } | Select-Object -ExpandProperty Count -First 1)
$surblRejected = Coalesce-Zero ($filters | Where-Object {$_.Name -eq "surblFilter" } | Select-Object -ExpandProperty Count -First 1)
$cyrenSpamRejected = Coalesce-Zero ($filters | Where-Object {$_.Name -eq "cyrenFilter" } | Select-Object -ExpandProperty Count -First 1)
$characterSetRejected = Coalesce-Zero ($filters | Where-Object {$_.Name -eq "characterSetFilter" } | Select-Object -ExpandProperty Count -First 1)
$wordRejected = Coalesce-Zero ($filters | Where-Object {$_.Name -eq "wordFilter" } | Select-Object -ExpandProperty Count -First 1)
$rdnsPermanentRejected = Coalesce-Zero ($filters | Where-Object {$_.Name -eq "reputation" } | Select-Object -ExpandProperty Count -First 1)
$cyrenAVRejected = Coalesce-Zero ($actions | Where-Object {$_.Name -eq "cyrenAction" } | Select-Object -ExpandProperty Count -First 1)
$contentrejected = Coalesce-Zero ($actions | Where-Object {$_.Name -eq "ContentFiltering" } | Select-Object -ExpandProperty Count -First 1)
$decryptPolicyRejected = Coalesce-Zero ($actions | Where-Object {$_.Name -eq "validateSignatureAndDecrypt" } | Select-Object -ExpandProperty Count -First 1)


$mailsprocessed = $outboundmessages+$inboundmessages
$blockedpercentage = [Math]::Round($totalRejected/$inboundmessages*100,2)
$cyrenspamblockpercentage = [Math]::Round($cyrenSpamRejected/$totalRejected*100,2)
$cyrenavblockpercentage = [Math]::Round($cyrenAVRejected/$totalRejected*100,2)
$surblblockedpercentage = [Math]::Round($surblRejected/$totalRejected*100,2)
$charactersetblockedpercentage = [Math]::Round($characterSetRejected/$totalRejected*100,2)
$wordrejectedblockedpercentage = [Math]::Round($wordRejected/$totalRejected*100,2)
$decryptpolicyblockedpercentage = [Math]::Round($decryptPolicyRejected/$totalRejected*100,2)
$rblRejectedpercentage = [Math]::Round($rblRejected/$totalRejected*100,2)
$reputationFilterRejectedpercentage = [Math]::Round($rdnsPermanentRejected/$totalRejected*100,2)
$contentrejectedpercentage = [Math]::Round($contentRejected/$totalRejected*100,2)
$greylistrejectedpercentage = [Math]::Round($greylistRejected/$totalRejected*100,2)
Write-Host " "
Write-Host "TemporaryReject Total:" $tempRejected
Write-Host "PermanentReject Total:" $permanentRejected
Write-Host "TotalReject:" $totalRejected
Write-Host " "
Write-Host "Sending E-Mail to " $ReportRecipient "..."

$htmlout = "<html>
<head>
<title>Auswertung der abgewiesenen E-Mails</title>
<style>
table, td, th { border: 1px solid #00cc00; border-collapse: collapse; }
th, td {padding-left:1em; padding-right:1em;}
td:not(:first-child){text-align:right;}
th {color:white;}
#headerzeile {background-color: #00cc00;}
</style>
</head>
<body style=font-family:arial>
<table>
<tr id=headerzeile><th>"+ $dateFrom +" bis "+ $dateTo +" ("+$NumberOfDaysToReport+" Tage)</th><th>Count</th><th>Percent</th></tr>
<tr><td>Mails Processed</td><td>" + $mailsprocessed +"</td><td>&nbsp;</td></tr>
<tr><td>Sent</td><td>" + $outboundmessages +"</td><td>&nbsp;</td></tr>
<tr><td>Received</td><td>" + $inboundmessages +"</td><td>&nbsp;</td></tr>
<tr><td>Mails blocked</td><td>" + $totalRejected +"</td><td>" + $blockedpercentage +" %</td></tr>
<tr><td>Realtime Blocklist Check</td><td>" + $rblRejected +"</td><td>" + $rblRejectedpercentage +" %</td></tr>
<tr><td>Reputation Check</td><td>" + $rdnsPermanentRejected +"</td><td>" + $reputationFilterRejectedpercentage +" %</td></tr>
<tr><td>Cyren AntiSpam</td><td>" + $cyrenSpamRejected +"</td><td>" + $cyrenspamblockpercentage +" %</td></tr>
<tr><td>Cyren Premium AntiVirus</td><td>" + $cyrenAVRejected +"</td><td>" + $cyrenavblockpercentage +" %</td></tr>
<tr><td>Spam URI Realtime Blocklists</td><td>" + $surblRejected +"</td><td>" + $surblblockedpercentage +" %</td></tr>
<tr><td>Allowed Unicode Character Sets</td><td>" + $characterSetRejected +"</td><td>" + $charactersetblockedpercentage +" %</td></tr>
<tr><td>Word Matching</td><td>" + $wordRejected +"</td><td>" + $wordrejectedblockedpercentage +" %</td></tr>
<tr><td>DecryptPolicy Reject</td><td>" + $decryptPolicyRejected +"</td><td>" + $decryptpolicyblockedpercentage +" %</td></tr>
<tr><td>ContentFiltering</td><td>" + $contentrejected + "</td><td>" + $contentrejectedpercentage + " %</td></tr>
<tr><td>Greylisting</td><td>" + $greylistrejected + "</td><td>" + $greylistrejectedpercentage + " %</td></tr>
</table>
</body>
</html>"


$htmlout | Out-File $reportFileName
"Sending report to $ReportRecipient"
Send-MailMessage -SmtpServer $SmtpHost -From $ReportSender -To $ReportRecipient -Subject $ReportSubject -Body "Im Anhang dieser E-Mail finden Sie den Bericht mit der Auswertung der abgewiesenen E-Mails." -Attachments $reportFileName
Write-Host "Doing some cleanup.."
Remove-Item $reportFileName
Write-Host "Done."


# SIG # Begin signature block
# MIIMSwYJKoZIhvcNAQcCoIIMPDCCDDgCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUh10YtHNgW7r53OCmVnoqyK71
# ALmgggmqMIIElDCCA3ygAwIBAgIOSBtqBybS6D8mAtSCWs0wDQYJKoZIhvcNAQEL
# BQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoT
# Ckdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTYwNjE1MDAwMDAw
# WhcNMjQwNjE1MDAwMDAwWjBaMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs
# U2lnbiBudi1zYTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBDb2RlU2lnbmluZyBDQSAt
# IFNIQTI1NiAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjYVV
# I6kfU6/J7TbCKbVu2PlC9SGLh/BDoS/AP5fjGEfUlk6Iq8Zj6bZJFYXx2Zt7G/3Y
# SsxtToZAF817ukcotdYUQAyG7h5LM/MsVe4hjNq2wf6wTjquUZ+lFOMQ5pPK+vld
# sZCH7/g1LfyiXCbuexWLH9nDoZc1QbMw/XITrZGXOs5ynQYKdTwfmOPLGC+MnwhK
# kQrZ2TXZg5J2Yl7fg67k1gFOzPM8cGFYNx8U42qgr2v02dJsLBkwXaBvUt/RnMng
# Ddl1EWWW2UO0p5A5rkccVMuxlW4l3o7xEhzw127nFE2zGmXWhEpX7gSvYjjFEJtD
# jlK4PrauniyX/4507wIDAQABo4IBZDCCAWAwDgYDVR0PAQH/BAQDAgEGMB0GA1Ud
# JQQWMBQGCCsGAQUFBwMDBggrBgEFBQcDCTASBgNVHRMBAf8ECDAGAQH/AgEAMB0G
# A1UdDgQWBBQPOueslJF0LZYCc4OtnC5JPxmqVDAfBgNVHSMEGDAWgBSP8Et/qC5F
# JK5NUPpjmove4t0bvDA+BggrBgEFBQcBAQQyMDAwLgYIKwYBBQUHMAGGImh0dHA6
# Ly9vY3NwMi5nbG9iYWxzaWduLmNvbS9yb290cjMwNgYDVR0fBC8wLTAroCmgJ4Yl
# aHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9yb290LXIzLmNybDBjBgNVHSAEXDBa
# MAsGCSsGAQQBoDIBMjAIBgZngQwBBAEwQQYJKwYBBAGgMgFfMDQwMgYIKwYBBQUH
# AgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqG
# SIb3DQEBCwUAA4IBAQAVhCgM7aHDGYLbYydB18xjfda8zzabz9JdTAKLWBoWCHqx
# mJl/2DOKXJ5iCprqkMLFYwQL6IdYBgAHglnDqJQy2eAUTaDVI+DH3brwaeJKRWUt
# TUmQeGYyDrBowLCIsI7tXAb4XBBIPyNzujtThFKAzfCzFcgRCosFeEZZCNS+t/9L
# 9ZxqTJx2ohGFRYzUN+5Q3eEzNKmhHzoL8VZEim+zM9CxjtEMYAfuMsLwJG+/r/uB
# AXZnxKPo4KvcM1Uo42dHPOtqpN+U6fSmwIHRUphRptYCtzzqSu/QumXSN4NTS35n
# fIxA9gccsK8EBtz4bEaIcpzrTp3DsLlUo7lOl8oUMIIFDjCCA/agAwIBAgIMUfr8
# J+jCyr4Ay7YNMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNVBAYTAkJFMRkwFwYDVQQK
# ExBHbG9iYWxTaWduIG52LXNhMTAwLgYDVQQDEydHbG9iYWxTaWduIENvZGVTaWdu
# aW5nIENBIC0gU0hBMjU2IC0gRzMwHhcNMTYwNzI4MTA1NjE3WhcNMTkwNzI5MTA1
# NjE3WjCBhzELMAkGA1UEBhMCREUxDDAKBgNVBAgTA05SVzESMBAGA1UEBxMJUGFk
# ZXJib3JuMRkwFwYDVQQKExBOZXQgYXQgV29yayBHbWJIMRkwFwYDVQQDExBOZXQg
# YXQgV29yayBHbWJIMSAwHgYJKoZIhvcNAQkBFhFpbmZvQG5ldGF0d29yay5kZTCC
# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWtx+QDzgovn6AmkJ8UCTNr
# xtFJbRCHKNkfev6k35mMkNlibsVnFxooABDKSvaB21nXojMz63g+KLUEN5S4JiX3
# FKq5h2XahwWHvar/r2HMK2uJZ76360ePhuSZTnkifsxvwNxByQ9ot2S1O40AyVU5
# xfEUsBh7vVADMbjqBVlXuNAfsfpfvgjoR0CsOfgKk0CEDZ1wP0bXIkrk021a7lAO
# Yq9kqVDFv8K8O5WYvNcvbtAg3QW5JEaFnM3TMaOOSaWZMmIo7lw3e+B8rqknwmcS
# 66W2E0uayJXKqh/SXfS/xCwO2EzBT9Q1x0XiFR1LlEHQ0T/tfenBUlefIxfDZnEC
# AwEAAaOCAaQwggGgMA4GA1UdDwEB/wQEAwIHgDCBlAYIKwYBBQUHAQEEgYcwgYQw
# SAYIKwYBBQUHMAKGPGh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0
# L2dzY29kZXNpZ25zaGEyZzNvY3NwLmNydDA4BggrBgEFBQcwAYYsaHR0cDovL29j
# c3AyLmdsb2JhbHNpZ24uY29tL2dzY29kZXNpZ25zaGEyZzMwVgYDVR0gBE8wTTBB
# BgkrBgEEAaAyATIwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2ln
# bi5jb20vcmVwb3NpdG9yeS8wCAYGZ4EMAQQBMAkGA1UdEwQCMAAwPwYDVR0fBDgw
# NjA0oDKgMIYuaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9nc2NvZGVzaWduc2hh
# MmczLmNybDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUZLedJVdZSZd5
# lwNJFEgIc8KbEFEwHwYDVR0jBBgwFoAUDzrnrJSRdC2WAnODrZwuST8ZqlQwDQYJ
# KoZIhvcNAQELBQADggEBADYcz/+SCP59icPJK5w50yiTcoxnOtoA21GZDpt4GGVf
# RQJDWCDJMkU62xwu5HzqwimbwmBykrAf5Log1fLbggI83zIE4sMjkUe/BnnHpHgK
# LYv+3eLEwglMw/6Gmlq9IqNSD8YmTncGZFoFhrCrgAZUkA6RiVxuZrx2wiluueBI
# vfGs+tRA+7Tgx6Ed9kBybnc+xbAiTCNIcSo9OkPZfc3Q9saMgjIehBMXHLgMdrhv
# N5HXv/r4+aZ6asgv3ggArHrS1Pxp0f60hooVK4bA4Ph1td6YZ5lf8HA4uMmHvOjQ
# iNS0UjXqu5Vs6leIRM3pBjuX45xL6ydUsMlLhZQfansxggILMIICBwIBATBqMFox
# CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTAwLgYDVQQD
# EydHbG9iYWxTaWduIENvZGVTaWduaW5nIENBIC0gU0hBMjU2IC0gRzMCDFH6/Cfo
# wsq+AMu2DTAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZ
# BgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYB
# BAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUUlD5XCJYSFRH4tCHFHrOe6JdWH4wDQYJ
# KoZIhvcNAQEBBQAEggEAKHfAtz0zkSPjlNc9IQBES088D+Ui6ZLQ7GTIZ4dByqaI
# 5yRBZtk2N79NutdSM8kULH9cTAHXaYmobHqZm56Xo7Qn/aEHpsf0HwclMpy2ngTN
# tjPq9/3pRjURqL1kGG0/BNalUPr5Z44BDmxzVOy81ulst/EGnt8r+UClwf4ehkp6
# PhLXGeJv+31McQa2WUGwOzAo1CLkCwwsB+e3jFaxykbh/B4k2Z1Kpqa0pX0yIk6n
# 4htpYPb3T7zyqwEnXO3Iuq57uScSICHu6LqQIdxTWqBJurQ9qAV24PiMqHCzama3
# dtEG2Qfb94JrcpYcSEmBXoQbHshLZ8sWndukB2FoWQ==
# SIG # End signature block
37 changes: 37 additions & 0 deletions Get-RejectionReport (Database)/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Get-RejectionReportNSP12.ps1

Sends a report to the specified E-Mail address which contains the following information:

- Total count of processed emails.
- Total count of sent emails.
- Total count of received emails.
- Total count of rejected emails.
- Total count of rejected emails for each Filter and Action.

This version uses the NoSPamProxy WebServices to acquire the required information. This is suited for small to medium sized installations. For large installations, the [Database Version](../Get-RejectionReport%20(Database)) version instead.

## Usage

```ps
Get-RejectionReport -SMTPHost -ReportRecipient [-ReportSubject] [-NumberOfDaysToReport] [-ReportSender]`
```

- **SMTPHost**: Mandatory. Specifies the SMTP Host which will be used to send the email.
- **ReportRecipient**: Mandatory. Specifies the Recipient of the email.
- **ReportSubject**: Optional. Specifies the Subject of the email. Default value is "Auswertung".
- **NumberOfDaysToReport**: Optional. Specifies the Number of days to report. Default value is "7".
- **ReportSender**: Optional. Specifies the Sender of the email. Default value is "NoSpamProxy Report Sender <[email protected]>".
- **SqlServer**: Optional. The name of the Database server (including instance name, if any). Defaults to (local)\NoSpamProxyDB.
- **Database**: Optional. Name the Database to query. Defaults to "NoSpamProxyAddressSynchronization".
- **Credential**: Optional. Username and password for the SQL authentication on the database server. If not set, Integrated authentication is used, which is the default.


## Example

```ps
.\Get-RejectionReport.ps1 -SMTPHost mail.example.com -ReportRecipient [email protected]'
```

## Supported NoSpamProxy Versions

This Script works for NoSpamProxy version 12.x and higher.
33 changes: 33 additions & 0 deletions Get-RejectionReport (WebServices)/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Get-RejectionReportNSP12.ps1

Sends a report to the specified E-Mail address which contains the following information:

- Total count of processed emails.
- Total count of sent emails.
- Total count of received emails.
- Total count of rejected emails.
- Total count of rejected emails for each Filter and Action.

This version uses the NoSPamProxy WebServices to acquire the required information. This is suited for small to medium sized installations. For large installations, the [Database Version](../Get-RejectionReport%20(Database)) version instead.

## Usage

```ps
Get-RejectionReport -SMTPHost -ReportRecipient [-ReportSubject] [-NumberOfDaysToReport] [-ReportSender]`
```

- **SMTPHost**: Mandatory. Specifies the SMTP Host which will be used to send the email.
- **ReportRecipient**: Mandatory. Specifies the Recipient of the email.
- **ReportSubject**: Optional. Specifies the Subject of the email. Default value is "Auswertung".
- **NumberOfDaysToReport**: Optional. Specifies the Number of days to report. Default value is "7".
- **ReportSender**: Optional. Specifies the Sender of the email. Default value is "NoSpamProxy Report Sender <[email protected]>".

## Example

```ps
.\Get-RejectionReport.ps1 -SMTPHost mail.example.com -ReportRecipient [email protected]`
```

## Supported NoSpamProxy Versions

This Script works for NoSpamProxy version 12.x and higher.
38 changes: 0 additions & 38 deletions Get-RejectionReport/README.md

This file was deleted.

0 comments on commit 37c8c51

Please sign in to comment.