Il client si collega in chiaro, il server annuncia STARTTLS tra le sue capability, il client invia il comando e solo allora parte l'handshake TLS. Con il TLS implicito (porte 465, 993, 995) la connessione è cifrata fin dall'inizio.
Tra mail server STARTTLS è opportunistico: se non viene offerto o l'handshake fallisce, quasi tutti consegnano in chiaro. Un attaccante può rimuovere l'offerta dalla risposta (STARTTLS stripping). MTA-STS e DANE chiudono questa falla.
Per testarlo usa openssl s_client con -starttls. Se il server presenta un certificato scaduto, molti mittenti consegnano lo stesso, mentre i client più rigidi interrompono.
Esempio
openssl s_client -connect mail.example.com:25 -starttls smtp -servername mail.example.com