SMTP-tester
Nåbarhet, banner, STARTTLS och testmeddelande.
Är porten nåbar?
Kontrollerar om SMTP-porten (25, 587 eller 465) är öppen från din nuvarande plats.
SMTP (25)
- Värd / server
-
mail.example.comÄndra i generatorn →
PowerShell (Windows)
Test-NetConnection Inbyggt
Test-NetConnection -ComputerName mail.example.com -Port 25 nc / ncat Tilläggsverktyg
ncat -vz mail.example.com 25 Unix-skal (bash)
bash /dev/tcp Inbyggt
timeout 5 bash -c "</dev/tcp/mail.example.com/25" && echo open || echo closed nc Tilläggsverktyg
nc -vz mail.example.com 25 Submission (587)
- Värd / server
-
mail.example.comÄndra i generatorn →
PowerShell (Windows)
Test-NetConnection Inbyggt
Test-NetConnection -ComputerName mail.example.com -Port 587 nc / ncat Tilläggsverktyg
ncat -vz mail.example.com 587 Unix-skal (bash)
bash /dev/tcp Inbyggt
timeout 5 bash -c "</dev/tcp/mail.example.com/587" && echo open || echo closed nc Tilläggsverktyg
nc -vz mail.example.com 587 SMTPS (465)
- Värd / server
-
mail.example.comÄndra i generatorn →
PowerShell (Windows)
Test-NetConnection Inbyggt
Test-NetConnection -ComputerName mail.example.com -Port 465 nc / ncat Tilläggsverktyg
ncat -vz mail.example.com 465 Unix-skal (bash)
bash /dev/tcp Inbyggt
timeout 5 bash -c "</dev/tcp/mail.example.com/465" && echo open || echo closed nc Tilläggsverktyg
nc -vz mail.example.com 465 Banner + EHLO
Öppnar anslutningen, läser 220-bannern och EHLO-svaret med de erbjudna funktionerna.
Eigener Mailserver
- Värd / server
-
mail.example.comÄndra i generatorn →
PowerShell (Windows)
TcpClient (.NET) Inbyggt
$h = "mail.example.com"; $p = 25
$c = New-Object Net.Sockets.TcpClient($h, $p)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("EHLO test.example.com")
Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("QUIT"); $c.Close() nc / ncat Tilläggsverktyg
"EHLO test.example.com`r`nQUIT`r`n" | ncat mail.example.com 25 Unix-skal (bash)
bash /dev/tcp Inbyggt
exec 3<>/dev/tcp/mail.example.com/25
printf 'EHLO test.example.com\r\nQUIT\r\n' >&3
cat <&3
exec 3<&- nc Tilläggsverktyg
( printf 'EHLO test.example.com\r\nQUIT\r\n'; sleep 1 ) | nc mail.example.com 25 Microsoft 365
PowerShell (Windows)
TcpClient (.NET) Inbyggt
$h = "contoso-com.mail.protection.outlook.com"; $p = 25
$c = New-Object Net.Sockets.TcpClient($h, $p)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("EHLO test.example.com")
Start-Sleep -Milliseconds 400; while ($c.Available) { $r.ReadLine() }
$w.WriteLine("QUIT"); $c.Close() nc / ncat Tilläggsverktyg
"EHLO test.example.com`r`nQUIT`r`n" | ncat contoso-com.mail.protection.outlook.com 25 Unix-skal (bash)
bash /dev/tcp Inbyggt
exec 3<>/dev/tcp/contoso-com.mail.protection.outlook.com/25
printf 'EHLO test.example.com\r\nQUIT\r\n' >&3
cat <&3
exec 3<&- nc Tilläggsverktyg
( printf 'EHLO test.example.com\r\nQUIT\r\n'; sleep 1 ) | nc contoso-com.mail.protection.outlook.com 25 Testa STARTTLS
Upprättar en STARTTLS-anslutning och visar certifikatet.
Submission (587)
- Värd / server
-
mail.example.comÄndra i generatorn →
PowerShell (Windows)
SslStream (.NET) Inbyggt
$h = "mail.example.com"; $p = 587
$c = New-Object Net.Sockets.TcpClient($h, $p)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine() | Out-Null
$w.WriteLine("EHLO test.example.com"); Start-Sleep -Milliseconds 200; while ($c.Available) { $r.ReadLine() | Out-Null }
$w.WriteLine("STARTTLS"); $r.ReadLine()
$ssl = New-Object Net.Security.SslStream($s, $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
([Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate) | Format-List Subject, Issuer, NotBefore, NotAfter
$ssl.Dispose(); $c.Close() openssl Tilläggsverktyg
openssl s_client -starttls smtp -crlf -connect mail.example.com:587 -servername mail.example.com Unix-skal (bash)
openssl Inbyggt
openssl s_client -starttls smtp -connect mail.example.com:587 -servername mail.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates swaks Tilläggsverktyg
swaks --server mail.example.com:587 -tls --quit-after TLS Microsoft 365
- Värd / server
-
smtp.office365.comÄndra i generatorn →
PowerShell (Windows)
SslStream (.NET) Inbyggt
$h = "smtp.office365.com"; $p = 587
$c = New-Object Net.Sockets.TcpClient($h, $p)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine() | Out-Null
$w.WriteLine("EHLO test.example.com"); Start-Sleep -Milliseconds 200; while ($c.Available) { $r.ReadLine() | Out-Null }
$w.WriteLine("STARTTLS"); $r.ReadLine()
$ssl = New-Object Net.Security.SslStream($s, $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
([Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate) | Format-List Subject, Issuer, NotBefore, NotAfter
$ssl.Dispose(); $c.Close() openssl Tilläggsverktyg
openssl s_client -starttls smtp -crlf -connect smtp.office365.com:587 -servername smtp.office365.com Unix-skal (bash)
openssl Inbyggt
openssl s_client -starttls smtp -connect smtp.office365.com:587 -servername smtp.office365.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates swaks Tilläggsverktyg
swaks --server smtp.office365.com:587 -tls --quit-after TLS Därefter kan du fortsätta skriva manuellt (EHLO, sedan QUIT). openssl är ett tilläggsverktyg, tillgängligt i Windows t.ex. via Git for Windows, och fungerar även i PowerShell.
Implicit TLS (465)
Ansluter direkt med TLS på port 465 (SMTPS, implicit TLS).
Impliztes TLS (465)
- Värd / server
-
mail.example.comÄndra i generatorn →
PowerShell (Windows)
SslStream (.NET) Inbyggt
$h = "mail.example.com"; $p = 465
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
([Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate) | Format-List Subject, Issuer, NotAfter
$ssl.Dispose(); $c.Close() openssl Tilläggsverktyg
openssl s_client -connect mail.example.com:465 -servername mail.example.com Unix-skal (bash)
openssl Inbyggt
openssl s_client -connect mail.example.com:465 -servername mail.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates swaks Tilläggsverktyg
swaks --server mail.example.com -p 465 --tlsc --quit-after BANNER Skicka testmeddelande (SMTP-ström)
Bygger hela SMTP-dialogen rad för rad (EHLO, MAIL FROM, RCPT TO, DATA, QUIT) och skickar ett riktigt testmeddelande: med inbyggda verktyg, utan tilläggsverktyg.
- Värd / server
-
mail.example.comÄndra i generatorn → - Avsändare
-
sender@example.comÄndra i generatorn →
PowerShell (Windows)
TcpClient (.NET) Inbyggt
$h = "mail.example.com"; $p = 25
$from = "sender@example.com"; $to = "recipient@example.com"
$c = New-Object Net.Sockets.TcpClient($h, $p)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
function Talk($line) { if ($line) { $w.WriteLine($line) }; Start-Sleep -Milliseconds 300; while ($c.Available) { $r.ReadLine() } }
Talk $null
Talk "EHLO test.example.com"
Talk "MAIL FROM:<$from>"
Talk "RCPT TO:<$to>"
Talk "DATA"
$w.WriteLine("Subject: SMTP-Test")
$w.WriteLine("From: $from")
$w.WriteLine("To: $to")
$w.WriteLine("")
$w.WriteLine("Testnachricht via reinem SMTP-Stream.")
Talk "."
Talk "QUIT"
$c.Close() Send-MailMessage Tilläggsverktyg
Send-MailMessage -SmtpServer mail.example.com -Port 25 -From sender@example.com -To recipient@example.com -Subject "SMTP-Test" -Body "SMTP-Test $(Get-Date -Format o)" Unix-skal (bash)
bash /dev/tcp Inbyggt
exec 3<>/dev/tcp/mail.example.com/25
send() { printf '%s\r\n' "$1" >&3; }
resp() { while IFS= read -r -t 3 line <&3; do printf '%s\n' "$line"; case $line in [0-9][0-9][0-9]" "*) break;; esac; done; }
resp
send "EHLO test.example.com"; resp
send "MAIL FROM:<sender@example.com>"; resp
send "RCPT TO:<recipient@example.com>"; resp
send "DATA"; resp
send "Subject: SMTP-Test"
send "From: sender@example.com"
send "To: recipient@example.com"
send ""
send "Testnachricht via reinem SMTP-Stream."
send "."; resp
send "QUIT"; resp
exec 3<&- swaks Tilläggsverktyg
swaks --server mail.example.com:25 --from sender@example.com --to recipient@example.com Den råa strömmen går okrypterat på port 25, lämpligt för ett relä eller MX utan autentisering. För port 587 med STARTTLS och AUTH, använd swaks eller openssl. Send-MailMessage är officiellt föråldrat men fungerar fortfarande.