IMAP / POP3
Postfachzugriff testen: Anmeldung, Fähigkeiten, Ordner und STARTTLS.
IMAP-Anmeldung testen
Meldet sich an einem Postfach an und listet die Ordner: prüft Erreichbarkeit, Zugangsdaten und Berechtigung in einem Durchgang.
IMAPS (993)
- Host / Server
-
mail.example.comIm Generator ändern → - Postfach / Benutzer
-
user@example.comIm Generator ändern →
PowerShell (Windows)
SslStream (.NET) Bordmittel
$h = "mail.example.com"; $p = 993
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$r = New-Object IO.StreamReader($ssl)
$w = New-Object IO.StreamWriter($ssl); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine()
$w.WriteLine('a1 LOGIN user@example.com "P@ssw0rd"'); $r.ReadLine()
$w.WriteLine("a2 LIST \"\" *"); Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("a3 LOGOUT"); $c.Close() openssl Zusatztool
openssl s_client -crlf -connect mail.example.com:993 Unix-Shell (bash)
openssl Bordmittel
openssl s_client -crlf -quiet -connect mail.example.com:993 <<'EOF'
a1 LOGIN user@example.com "P@ssw0rd"
a2 LIST "" *
a3 LOGOUT
EOF curl Zusatztool
curl -v --url "imaps://mail.example.com:993" --user "user@example.com" Microsoft 365
- Host / Server
-
outlook.office365.comIm Generator ändern → - Postfach / Benutzer
-
user@contoso.comIm Generator ändern →
PowerShell (Windows)
SslStream (.NET) Bordmittel
$h = "outlook.office365.com"; $p = 993
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$r = New-Object IO.StreamReader($ssl)
$w = New-Object IO.StreamWriter($ssl); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine()
$w.WriteLine('a1 LOGIN user@contoso.com "P@ssw0rd"'); $r.ReadLine()
$w.WriteLine("a2 LIST \"\" *"); Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("a3 LOGOUT"); $c.Close() openssl Zusatztool
openssl s_client -crlf -connect outlook.office365.com:993 Unix-Shell (bash)
openssl Bordmittel
openssl s_client -crlf -quiet -connect outlook.office365.com:993 <<'EOF'
a1 LOGIN user@contoso.com "P@ssw0rd"
a2 LIST "" *
a3 LOGOUT
EOF curl Zusatztool
curl -v --url "imaps://outlook.office365.com:993" --user "user@contoso.com" P@ssw0rd durch das echte Passwort ersetzen. Microsoft 365 hat Basic Authentication für IMAP abgeschaltet; dort braucht es OAuth 2.0, ein reiner LOGIN-Versuch scheitert erwartungsgemäss.
IMAP-Fähigkeiten
Zeigt, welche Fähigkeiten der Server meldet, darunter die unterstützten Anmeldeverfahren (AUTH=PLAIN, AUTH=XOAUTH2 ...).
IMAPS (993)
- Host / Server
-
mail.example.comIm Generator ändern →
PowerShell (Windows)
SslStream (.NET) Bordmittel
$h = "mail.example.com"; $p = 993
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$r = New-Object IO.StreamReader($ssl)
$w = New-Object IO.StreamWriter($ssl); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine()
$w.WriteLine("a1 CAPABILITY"); Start-Sleep -Milliseconds 300; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("a2 LOGOUT"); $c.Close() openssl Zusatztool
openssl s_client -crlf -connect mail.example.com:993 Unix-Shell (bash)
openssl Bordmittel
printf 'a1 CAPABILITY\r\na2 LOGOUT\r\n' | openssl s_client -crlf -quiet -connect mail.example.com:993 2>/dev/null curl Zusatztool
curl -sv --url "imaps://mail.example.com:993" 2>&1 | grep -i capability Postfach-Status
Fragt die Anzahl Nachrichten und ungelesene Nachrichten im Posteingang ab: nützlich, um Zustellung zu bestätigen.
- Host / Server
-
mail.example.comIm Generator ändern → - Postfach / Benutzer
-
user@example.comIm Generator ändern →
PowerShell (Windows)
SslStream (.NET) Bordmittel
$h = "mail.example.com"; $p = 993
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$r = New-Object IO.StreamReader($ssl)
$w = New-Object IO.StreamWriter($ssl); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine()
$w.WriteLine('a1 LOGIN user@example.com "P@ssw0rd"'); $r.ReadLine()
$w.WriteLine("a2 STATUS INBOX (MESSAGES UNSEEN)"); Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("a3 LOGOUT"); $c.Close() curl Zusatztool
curl.exe -v --url "imaps://mail.example.com:993/INBOX" --user "user@example.com" --request "STATUS INBOX (MESSAGES UNSEEN)" Unix-Shell (bash)
openssl Bordmittel
openssl s_client -crlf -quiet -connect mail.example.com:993 <<'EOF'
a1 LOGIN user@example.com "P@ssw0rd"
a2 STATUS INBOX (MESSAGES UNSEEN)
a3 LOGOUT
EOF curl Zusatztool
curl --url "imaps://mail.example.com:993/INBOX" --user "user@example.com" --request "STATUS INBOX (MESSAGES UNSEEN)" P@ssw0rd durch das echte Passwort ersetzen.
POP3 testen
Meldet sich per POP3 an und fragt mit STAT die Anzahl und Grösse der wartenden Nachrichten ab.
- Host / Server
-
mail.example.comIm Generator ändern → - Postfach / Benutzer
-
user@example.comIm Generator ändern →
PowerShell (Windows)
SslStream (.NET) Bordmittel
$h = "mail.example.com"; $p = 995
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$r = New-Object IO.StreamReader($ssl)
$w = New-Object IO.StreamWriter($ssl); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine()
$w.WriteLine("USER user@example.com"); $r.ReadLine()
$w.WriteLine("PASS P@ssw0rd"); $r.ReadLine()
$w.WriteLine("STAT"); $r.ReadLine()
$w.WriteLine("QUIT"); $c.Close() openssl Zusatztool
openssl s_client -crlf -connect mail.example.com:995 Unix-Shell (bash)
openssl Bordmittel
openssl s_client -crlf -quiet -connect mail.example.com:995 <<'EOF'
USER user@example.com
PASS P@ssw0rd
STAT
QUIT
EOF curl Zusatztool
curl -v --url "pop3s://mail.example.com:995" --user "user@example.com" P@ssw0rd durch das echte Passwort ersetzen. POP3 löscht je nach Client die Nachrichten nach dem Abruf; ein reiner STAT-Test tut das nicht.
IMAP-STARTTLS (143)
Baut auf dem Klartext-Port 143 eine STARTTLS-Verbindung auf und zeigt das Zertifikat.
- Host / Server
-
mail.example.comIm Generator ändern →
PowerShell (Windows)
TcpClient (.NET) Bordmittel
$c = New-Object Net.Sockets.TcpClient("mail.example.com", 143)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine()
$w.WriteLine("a1 STARTTLS"); $r.ReadLine()
$ssl = New-Object Net.Security.SslStream($s, $false, ({ $true }))
$ssl.AuthenticateAsClient("mail.example.com")
([Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate) | Format-List Subject, NotAfter
$ssl.Dispose(); $c.Close() openssl Zusatztool
openssl s_client -starttls imap -crlf -connect mail.example.com:143 Unix-Shell (bash)
openssl Bordmittel
openssl s_client -starttls imap -connect mail.example.com:143 </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates curl Zusatztool
curl -v --url "imap://mail.example.com:143" --ssl-reqd