MICROLINC - Probleme suchen Lösung
Zurück   Home

PowerShell SMTP Client TLS Tester

  -  08.12.2018 - 00:22
Menü

Home
Microsoft Small Business Server 2011 Standard
Hardware
Windows
MS Office
Projekte

Mehrwertsteuerrechner

Gästebuch

Pingtool

Warenwirtschaft

Password Expiration Reminder

Java Update Disabler

Briefkopf in PDF kombinieren FreePDF

Microsoft Exchange Management Shell Skripte

php-Tipps

3G-Failover Lösungen (mit Webserveranbindung & Exchange)

KeepProcessAlive

ActiveSync User und Devices über Active Directory auslesen

PowerShell SMTP Client TLS Tester

PowerShell Postfix Transport Log Parser

Auslesen der Allow-List aus KEMP-Loadbalancer via PowerShell

Backup Script Stotax-Datenbanken nach Hidrive

PowerShell - Active Directory Schema GUIDs und Ldap-Namen

Support
Download
Peripherie
Sonstiges (Off-Topic)
Telefonie
Windows 8
Windows Mobile
Security-Software
DATEV
Virtualisierung Oracle virtualbox
nginx
Kryptographie
hMailServer
Android
Novell
Exchange
Server 2012 R2
AD Certificate Service (PKI) / Zertifizierungsstelle
System Center
Blackberry
Microsoft Flow
Virtualisierung Microsoft Hyper-V
Ubiquiti
3CX
OneDrive
PowerShell
Azure
HAProxy
Defender
Teams


 
Autor:Thomas Windscheif last edit:23.07.2022 20:29

Link zu diesem Beitrag:


[Druckansicht]

PowerShell
SMTP Client Test
TLS Protokoll Test

getestet unter:
Windows 7,10
Windows Server 2012 R2
ab PowerShell V3, .NET 4.5.x

Da ich bisher kein Tool unter Windows gefunden habe, welches die Auswahl von TLS-Protokollen im SMTP-Kontext ermöglicht, habe ich nun auf Basis von PowerShell und der nativen .NET Mail-Klasse ein kleines Skript gebaut.

Zum Download

Was deckt das Skript ab


  • Die folgenden Protokolle werden gegen SMTP-Test getestet:
    • Keine Verschlüsselung (None)
    • TLS 1.3 (Tls13)
    • TLS 1.2 (Tls12)
    • TLS 1.1 (Tls11)
    • TLS 1.0 (Tls)
    • SSL 3.0 (Ssl3)
  • Der Zielserver kann mittels IP oder FQDN angesprochen werden
  • Der SMTP-Port kann gewählt werden
  • Die Absenderadresse und die Zieladresse können angegeben werden
  • Anmeldedaten für die SMTP-Sitzung werden unterstützt
  • Das Rückgabeobjekt ist ein PSCustomObject, welches problemlos weiterverarbeitet werden kann (z. B. Export via CSV etc.)
  • Betreff der Testnachricht kann angepasst werden
  • Selbstsignierte Zertifikate am Server werden unterstützt

Voraussetzungen


  • PowerShell ab Version 3.0
  • .NET Framework 4.5.x

Funktionsweise des Scripts


  1. Zunächst werden die zu testenden TLS-Protokolle im Array aufgelistet. Für den jeweiligen Test wird nachher immer ein bestimmtes TLS-Protokoll aktiviert und dem "System.Net.ServicePointManager" als SecurityProtocol (System.Net.SecurityProtocolType) zugewiesen.
  2. Die einzelnen Array-Elemente werden nun in einer Foreach-Schleife abgearbeitet.
  3. Der letzte Teil des Strings des Arrayelements wird mittels einer Regex-Expression extrahiert und in der Folge verwendet, um anzuzeigen, welches Protokoll gerade getestet wird.
  4. Mittels der Klasse "Net.Mail.SmtpClient" wird ein Objekt erstellt.
  5. Die als Scriptparameter übergebenen Werte werden nun als Attribute entsprechend in dem Objekt gepflegt
  6. Sofern der Parameter "MailServerUsername" gesetzt wurde, wird dieses entweder gemeinsam mit dem Passwort über den Parameter "MailServerPassword" als Credentials hinterlegt oder das Script fordert zur Eingabe des Passworts auf.
  7. Wenn das aktuelle Array-Element "None" entspricht, wird der Verschlüsselungsanteil des Scripts übersprungen, andernfalls wird TLS für das Mailobjekt aktiviert.
  8. Sofern der Parameter "MailIgnoreTLSValidation" auf true gesetzt wurde, wird der ServicePointManager angewiesen invalide Zertifikate zu akzeptieren.
  9. Das Mailobjekt wird abschließend veranlasst den Sendevorgang durchzuführen.
  10. Die Ergebnisse werden zunächst in einer Hashtable und anschließend als PowerShell-Objekt in ein Array geschrieben. Dies ermöglicht eine einfache Weiterverarbeitung und Filterung.

Anwendung des Scripts


Bei dem nachfolgenden Beispiel versucht das Script die TLS-Tests mit dem Server "mail01.domain.local" unter Verwendung des TCP-Ports 25. Der Absender ist "yourname@yourdomain.com" und der Empfänger "anothername@yourdomain.com". Eine Authentifizierung wird mit dem Benutzernamen "yourname@yourdomain.com" durchgeführt:

C:\Skripte>.\Check-SMTPTLSProtocols.ps1 -MailServer smtp.office365.com -MailSender yourname@yourdomain.com -MailRecipient anothername@foreigndomain.com -MailServerUsername yourname@yourdomain.com

Das Ergebnis sieht dann beispielsweise so aus:



Um die zurückgegebenen Daten in eine CSV-Datei zu schreiben, kann man diese zum Cmdlet Export-Csv pipen:

C:\Skripte>.\Check-SMTPTLSProtocols.ps1 -MailServer smtp.office365.com -MailSender yourname@yourdomain.com -MailRecipient anothername@foreigndomain.com -MailServerUsername yourname@yourdomain.com | Export-Csv TLSTest.csv -Delimiter ";" -Encoding Default -NoTypeInformation

aktuelle Downloads

Download
-> Check-SMTPTLSProtocolsV1.1.zip (Version 1.1) ~ 3 KB
-> Check-SMTPTLSProtocols.zip (Version 1.0) ~ 2,8 KB



Über den Autor
Thomas Windscheif arbeitet bei excITe Consulting und ist langjähriger Berater im Bereich IT-Infrastruktur und Groupware. Sowohl Kleinunternehmen z. B. im Handwerk als auch der größere fertigende Mittelstand gehören zu seinem Projektumfeld. Im Wesentlichen gehören die Planung von Infrastruktur-Migrationen (Novell/Micro Focus, Microsoft), Cloud-Lösungen (Office365), Groupware-Umgebungen (z. B. Exchange) und deren Umsetzung zu seinen Aufgaben. Neues begeistert ihn aber ebenso und so unterstützt Thomas Windscheif auch bei themenfremden IT-Systemen, überall da wo er helfen kann.

Sein Ziel: Die Mehrwerte der heutigen IT-Lösungen für einfacheres und modernes Arbeiten beim Kunden einbringen.


Login


QuickTag:  

 
Sie haben ein ungelöstes Problem in Ihrer Exchange Server oder Microsoft-Infrastruktur?
Treten Sie gerne mit mir in Kontakt. Sowohl bei einfachen Exchange Installationen, als auch bei hochverfügbaren, lastverteilten Mehrstandort-DAG-Topologien mit Loadbalancern unterstütze ich Sie -auch kurzfristig- sehr gerne.

Nutzen Sie den Live Chat, xing, LinkedIn, das Kontaktformular oder den Mailkontakt

[News als RSS-Feed abonnieren]
News

vom 06.11.2023 - 18:05


- Safe Sender List unter Outlook leeren - Praktische Umsetzung -

Um die Safe Sender List unter Outlook zu leeren, gibt es verschiedene Möglichkeiten.
Die Richtlinienbasierte Option insbesondere für M365 Apps for Business-Kunden mit eingeschränkten Gruppenrichtlinien werden hier fündig.

https://www.microlinc.de/index.php?lev1=25&lev2=40&id=466


Weitere News:

Exchange Online Protection und die Safe Sender List


vom 26.10.2023 15:06


Exchange Online - Abschaltung Remote PowerShell Session (RPS)


vom 25.08.2023 14:37


Tool zum Konvertieren von Agfeo-Adressbüchern nach 3CX


vom 01.05.2023 16:47


Das Ende der Standardauthentifizierung - Wie bereite ich mein Unternehmen vor?


vom 03.08.2022 15:19


Sharepoint-Kalender unter Team freigeben


vom 17.07.2022 17:41


Exchange Update HAFNIUM-Exploit


vom 09.03.2021 09:27


Windows Server 2019 - LDAP out of memory exception


vom 16.09.2019 17:48


3CX V16 Call Control API mit PowerShell Core


vom 25.04.2019 11:41


Exchange Online SMTP TLS Report


vom 15.02.2019 18:04


TLS-Test für SMTP mit PowerShell


vom 10.12.2018 11:47


3CX Secure SIP via DIRECT-STUN mit yealink T46S


vom 08.09.2018 15:35


Exchange 2016 CU10


vom 25.06.2018 15:21


Apple iCloud Addin stört Outlook Kalenderfunktionen


vom 18.10.2017 13:24


.NET 4.7 released - Bitte nicht auf Exchange Servern installieren


vom 13.06.2017 21:52


Troubleshooting Exchange Health Manager Sensoren


vom 16.05.2017 21:06


Exchange 2016 - ActiveSync-Lesebestätigungen können nun unterdrückt werden


vom 09.03.2017 18:28


Exchange - Informationen an Dritte einschränken


vom 20.02.2017 01:53


Einen guten Start in das neue Jahr


vom 31.12.2016 19:21


Smart App Banner für OWA entfernen


vom 09.09.2016 20:15



[alle News auflisten]
Sitemap - Kontakt - Datenschutz & Disclaimer - Impressum