• Bewerte uns auf OMR Reviews: Klick

  • NSP Forum als App inkl. Push Nachrichten (iOS): Klick

  • Wichtige Information für alle, die noch nicht auf v14.0.5.39 sind:

    Cyren Antimalware kann nicht mehr verwendet werden. Unsere Lizenz ist endgültig deaktiviert, so dass der Dienst nicht mehr nutzbar ist.
    Bitte stellt sicher, dass ihr schnellstmöglich auf die aktuelle Version aktualisiert. Bis es so weit ist, empfehlen wir die Cyren Antimalware Aktion zu deaktivieren und mindestens den lokalen Virenscanner zu aktivieren. Sollte kein anderer Scanner als Cyren aktiv sein, kommt es unweigerlich zur Abweisung von E-Mails.

    Zusätzlich raten wir dazu, die Cyren Filter zu deaktivieren, hier ist der Einfluss zwar geringer, solange alle anderen Filter korrekt durchlaufen, aber im Problemfall kommt es ebenfalls zur Abweisung.

     

    Unser Blogbeitrag wird in Kürze ebenfalls aktualisiert.

    Beste Grüße
    Euer NoSpamProxy Team

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagatracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

Github-Skript für Report abgelehnte Mails - Hilfe bei gewünschten Anpassungen?

mabu

Well-known member
Hallo.

Ich möchte das Skript ReporttoUserswithAllBlockedEmails einsetzen, aber erst einmal in der Art, dass zentral ein Admin die komplette Übersicht bekommt.

Mit Hilfe von Franks Tipps konnte ich zumindest schon so anpassen, dass die Mails nicht beim eigentlichen Empfänger, sondern bei mir landen. Das ist aber pro Empfängeradresse eine separate Mail.

Folgende Anpassungen bräuchte ich aktuell:

  1. in der Tabelle hinzufügen der Empfängermailadresse
  2. nicht eine Tabelle und Mail pro Empfänger, sondern alles in eine Tabelle und in eine Mail

Da muss bestimmt was mit dem "for each" angepasst werden. vermute so ab Zeile 40. Aber leider erschließt sich mir das nicht so richtig :-(

Und dann noch die Frage, ob man z.B. bei Ablehnung durch nicht validierbares Zertifikat dies auch als "Abweisungsgrund" erkennt. In meinem Test heute scheint es nur "SpamOrVirus" als Eintrag zu geben.

Danke.
 
Hallo Martin,
schick mir doch mal das was du hast und ich schau mal was ich auf die schnelle machen kann.

Grüße
 
Guten Morgen Martin,

ich habe mal eine quick & dirty Variante erstellt. Im ersten Test scheint mir das auch recht akzeptabel :)
Eine saubere Erweiterung der Report Skripte für "an den Admin" ist bei uns sogar schon angedacht, aktuell fehlt nur etwas die Zeit das ordentlich zu machen.
Für die Empfangsadresse des Admins gibt es nun einen Parameter.

Code:
Param
(
[Parameter(Mandatory=$true)][string] $SMTPHost,
[Parameter(Mandatory=$true)][string] $AdminAddress,
[Parameter(Mandatory=$false)][int] $NumberOfDaysToReport = 1,
[Parameter(Mandatory=$false)][string] $ReportSender = "NoSpamProxy Report Sender <nospamproxy@example.com>",
[Parameter(Mandatory=$false)][string] $ReportSubject = "Auswertung der abgewiesenen E-Mails an Sie",
# only needed for v14 with enabled provider mode
[Parameter(Mandatory=$false)][string] $TenantPrimaryDomain	
)

$nspVersion = (Get-ItemProperty -Path HKLM:\SOFTWARE\NoSpamProxy\Components -ErrorAction SilentlyContinue).'Intranet Role'
if ($nspVersion -gt '14.0') {
	try {
		Connect-Nsp -IgnoreServerCertificateErrors -ErrorAction Stop
	} catch {
		$e = $_
		Write-Warning "Not possible to connect with the NoSpamProxy. Please check the error message below."
		$e |Format-List * -Force
		EXIT
	}
	if ($(Get-NspIsProviderModeEnabled) -eq $true) {
		if ($null -eq $TenantPrimaryDomain -OR $TenantPrimaryDomain -eq "") {
			Write-Host "Please provide a TenantPrimaryDomain to run this script with NoSpamProxy v14 in provider mode."
			EXIT
		} else {
			# NSP v14 has a new authentication mechanism, Connect-Nsp is required to authenticate properly
			# -IgnoreServerCertificateErrors allows the usage of self-signed certificates
			Connect-Nsp -IgnoreServerCertificateErrors -PrimaryDomain $TenantPrimaryDomain
		}
	}
}

$dateStart = (Get-Date).AddDays(-$NumberOfDaysToReport)
$reportaddressesFileName = [System.IO.Path]::Combine($Env:TEMP, "reportaddresses.txt")

"Getting MessageTrackInformation.."
$messageTracks = Get-NSPMessageTrack -Status PermanentlyBlocked -From $dateStart -Directions FromExternal -WithAddresses
"Create Reportaddresses-File"

$entries = @{}
foreach ($messageTrack in $messageTracks){
	$addresses = $messageTrack.Addresses
	foreach ($addressEntry in $addresses){
		if ($addressEntry.AddressType -eq "Recipient"){
			$messageRecipient = $addressEntry.Address
			$list = $entries[$messageRecipient]
			if (!$list) {
				$list = @($messagetrack)
			}
			else
			{
				$list += $messageTrack
			}
			$entries[$messageRecipient] = $list
			}
	}
}
Set-Content $reportaddressesFileName $existingAddresses

"Generating and sending reports for the following e-mail addresses:"

# moved report logic out of loop
$reportFileName = $Env:TEMP + "\reject-analysis.html"

$htmlbody1 ="<html>
		<head>
			<title>Abgewiesene E-Mails an Sie</title>
			<style>
				table, td, th { border: 1px solid black; border-collapse: collapse; }
				#headerzeile         {background-color: #DDDDDD;}
			</style>
		</head>
	<body style=font-family:arial>
		<h1>Abgewiesene E-Mails an Sie</h1>
		<br>
		<table>
			<tr id=headerzeile>
				<td><h3>Uhrzeit</h3></td><td><h3>Empf&auml;nger</h3></td><td><h3>Absender</h3></td><td><h3>Betreff</h3></td>
			</tr>
			"

$htmlbody2 =""

# loop through all employees and loop through all senders
$entries.GetEnumerator() | ForEach-Object {

	$_.Name
	foreach ($validationItem in $_.Value) 
	{
		$NSPStartTime = $validationItem.Sent.LocalDateTime
		$addresses2 = $validationItem.Addresses
		$NSPSender = ($addresses2 | ? {$_.AddressType -eq "Sender"} | select "Address").Address		
        # add recipient 
		$NSPRecipient = ($addresses2 | ? {$_.AddressType -eq "Recipient"} | select "Address").Address		
		$NSPSubject = $validationItem.Subject
        # add recipient to output
		$htmlbody2 += "<tr><td width=150px>$NSPStartTime</td><td>$NSPRecipient</td><td>$NSPSender</td><td>$NSPSubject</td></tr>"
	}
}
$htmlbody3="</table>
	</body>
	</html>"
$htmlout=$htmlbody1+$htmlbody2+$htmlbody3

$htmlout | Out-File $reportFileName
Send-MailMessage -SmtpServer $SmtpHost -From $ReportSender -To $AdminAddress -Subject $ReportSubject -BodyAsHtml -Body "Im Anhang dieser E-Mail finden Sie den Bericht mit der Auswertung der abgewiesenen E-Mails aufgrund von Anh&auml;ngen an der E-Mail." -Attachments $reportFileName
Remove-Item $reportFileName
"Doing some cleanup...."
Remove-Item $reportaddressesFileName


Hoffe du hast einen guten Start in die Woche.

Gruß
Jan
 
Hallo Jan.

Danke für das Skript. Eben nach meinem Urlaub erst dazu gekommen, es mir anzusehen und zu testen.

Ich habe es eben noch um den Abweisungsgrund erweitert (zeigt zumindest Spam oder Policy im Test mit an).

Das werde ich nun mal per Scheduler laufen lassen. Letzte Tat für heute. Ist spät genug

Gruß,
Martin
 
Zurück
Oben