Você deseja proteger a comunicação e não alternar para outras portas.
O TLS é um protocolo para criptografar a comunicação. Para poder usar o TLS, no entanto, ambos os lados das conversas precisam concordar em fazê-lo; caso contrário, um lado esperará que a comunicação fique clara, e o outro lado esperará uma comunicação criptografada, e tudo dará errado.
Garantir que ambos os lados usem o mesmo tipo de comunicação (por exemplo, criptografada ou não) pode ser feito de duas maneiras:
- Você suporta uma versão "não criptografada" do protocolo em uma porta e uma versão "criptografada" do protocolo na outra. Os clientes que se conectarem à porta "criptografada" iniciarão o handshake de TLS imediatamente após a conexão, e nenhuma comunicação não criptografada ocorrerá
- Você suporta um comando "faça upgrade da conexão para TLS" na porta não criptografada. Essa é a maneira de
STARTTLS
de fazer as coisas. Nesse método, os clientes se conectam à porta não criptografada e, em seguida, enviam (sem criptografia) um comando ao servidor para atualizar para o TLS. A partir de então, tudo será criptografado.
Ambos os lados têm suas vantagens e desvantagens, e não há realmente um "melhor" caminho. A boa notícia é que você pode fazer as duas coisas ao mesmo tempo; a maioria dos softwares IMAP e SMTP suporta a execução nos dois modos em paralelo.
Além disso, você deve ter o cuidado de entender a diferença entre o envio de e-mail e a entrega de e-mail :
- O envio é quando seus clientes desejam enviar um email a terceiros e precisam de um servidor "SMTP de saída" (você). Eles se conectam ao servidor, são autenticados de alguma forma (por exemplo, por meio de um nome de usuário e senha, ou conectando o endereço IP ou por outros meios) e, em seguida, usam o protocolo SMTP para enviar emails para entrega. Em seguida, cabe ao seu servidor garantir que os emails em questão acabem no destino final. Para fornecer um serviço útil aos seus clientes, os clientes de envio devem ter permissão para enviar e-mails para toda a Internet. A porta 587 é fornecida como uma porta padrão para clientes de envio, mas você pode escolher o que quiser, se preferir.
- A entrega é para quando o seu servidor é o destino final de um email enviado por um terceiro . Como o servidor de envio não requer nenhum relacionamento com o cliente, ele não pode ser autenticado. Em vez disso, procura o endereço do seu servidor através do registro MX no DNS e, em seguida, conecta-se ao seu servidor na porta 25. Ele entrega os emails ao seu servidor e espera que você garanta que ele acabe com o destinatário final. Para evitar tornar-se um retransmissor de SPAM, os clientes de entrega não devem ter permissão para enviar email para toda a Internet. A porta 25 é a única porta permitida para clientes de entrega.
Se STARTTLS
estiver ativado na porta 25, o TLS poderá ser usado para clientes de entrega. Se você usar a porta 587, você deverá padronizar a comunicação não criptografada e fornecer o comando STARTTLS
. Se você quiser usar o método mais antigo de "conectar-se com o handshake TLS imediato", use a porta 465.