O comando HELO (e seu sucessor moderno EHLO) são os primeiros comandos enviados pelo cliente SMTP após o estabelecimento da conexão TCP na porta 25. Eles funcionam como a “Saudação Inicial” da conversação.

1. O Comando HELO (Standard SMTP)

Introduzido na RFC 821, o HELO é usado para identificar o cliente SMTP (remetente) para o servidor SMTP (destinatário).
- Sintaxe: HELO <FQDN_do_cliente>
- Resposta Sucesso: 250 OK (geralmente acompanhado do FQDN do servidor).

2. O Comando EHLO (Extended SMTP)

Com a evolução das necessidades (segurança, anexos maiores, etc.), surgiu a necessidade de estender o SMTP sem quebrar a compatibilidade com servidores antigos. O comando EHLO (Extended HELO) foi criado para isso.
- Ao receber um EHLO, o servidor responde com uma lista das Extensões de Serviço que ele suporta.

Exemplo de interação EHLO:

C: EHLO mail.empresa.com
S: 250-server.destino.com Hello [1.2.3.4]
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250-AUTH LOGIN PLAIN
S: 250 ENHANCEDSTATUSCODES

3. Extensões Comuns Descobertas via EHLO

  • SIZE: Indica o tamanho máximo de mensagem (em bytes) que o servidor aceita. Ajuda o cliente a desistir de enviar um anexo muito grande antes mesmo de começar a transmissão.
  • STARTTLS: Indica que o servidor suporta criptografar o canal de texto via TLS/SSL.
  • AUTH: Indica que o servidor exige autenticação (usuário e senha) para permitir o envio (evitando Open Relays).
  • 8BITMIME: Permite o envio de caracteres de 8 bits (importante para acentuação e dados binários sem codificação pesada).

[!WARNING]
Se um servidor moderno receber um HELO em vez de um EHLO, ele tratará a sessão como uma conexão SMTP legada e não oferecerá suporte a nenhuma das extensões acima (incluindo segurança).