Tenho lido as especificações SMTP e outros RFCs relacionados (principalmente 8314 e 6409 ) e não consigo entender isso, então espero que vocês possam me ajudar.
Estou tentando configurar um servidor SMTP para testar a entrega de mensagens transacionais e ele está funcionando conforme o esperado no envio, ou seja, se apontarmos nosso remetente de e-mail para ele, ele solicitará autenticação com sucesso, receberá a mensagem e a armazenará. Tudo isso pela porta 587 usando TLS.
Agora quero adicionar um mecanismo abrangente para que todos os emails entregues para *@meudominio.com sejam armazenados no mesmo banco de dados, então comecei a fazer algumas pesquisas. O que descobri é que, uma vez enviado um e-mail via SMTP, ele também é entregue pelo MTA usando SMTP, no que a especificação chama de 'retransmissão de mensagem'.
Pelo que entendi, você precisa escutar em ambas as portas, 587 para 'envio de mensagem' (com autenticação, verificando se o remetente está no seu servidor) e porta 25 para 'retransmissão de mensagem' (sem autenticação, verificando se o destinatário está ligado seu servidor). Devido a limitações na estrutura do servidor subjacente, não haverá suporte para STARTTLS, apenas TLS implícito, portanto, não haverá porta 465.
Então, a questão é: estou entendendo certo, que deveria haver duas portas de escuta com uma finalidade diferente?
E um bônus: ¿como um servidor negocia autenticação quando as portas são intercambiáveis (por exemplo, no CPanel você pode usar 465 ou 25 para envio, a única diferença é o suporte TLS em cada porta; mas eles também recebem mensagens de entrada pela porta 25 )?
É importante observar que o objetivo do servidor não é enviar mensagens, mas apenas recebê-las de aplicativos da web (por exemplo, para testar se o envio de redefinição de senha funciona) ou de outros servidores de e-mail/MTAs (como o Mailinator faz, com um registro MX curinga, para testar mensagens/respostas recebidas).
Desde já, obrigado!