Estou tentando criar um cliente de email como uma experiência de aprendizado. A maioria dos servidores de email modernos exige o uso de TLS. Ao usar s_client
do OpenSSL, posso usar o -starttls
flag, então s_client
faria automaticamente a negociação TLS com o servidor. No entanto, ao usar a API C bruta e não o utilitário openssl, não sei como posso implementar a negociação.
Tanto quanto eu posso entender, primeiro devo conectar-me à porta SMTP sobre TLS do servidor de um soquete não-seguro, invocar o comando STARTTLS
e, em seguida, alternar para um soquete seguro fazendo a negociação TLS. Está correto?