Ir diretamente para o conteúdo

Definições de cookies

Escolha que tipos de cookies permite. Pode alterar a sua escolha a qualquer momento em Definições de cookies, no fundo de cada página. Política de privacidade

Necessários

Sempre ativos

Necessários para iniciar sessão, manter o seu carrinho e memorizar as suas escolhas. Estão sempre ativos.

Que cookies?
  • weboke_sessie, weboke_klant, weboke_remember: a sua sessão e manter a sessão iniciada
  • weboke_basket: o seu carrinho
  • wkBtwIncl: mostrar preços com ou sem IVA
  • wok_cookies: a sua escolha de cookies, 12 meses

Mede que anúncio leva a uma visita ou encomenda, para não pagarmos por anúncios que não dão resultado.

Que cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), até 90 dias
  • OpenAI Ads, anúncios no ChatGPT
  • wok_aff: através de que parceiro chegou até nós (programa de afiliados), 60 dias

4,6

País e idioma

Cada país tem o seu próprio site, com os preços e o IVA desse país.

Ver

SMTP: a conversa entre servidores de correio

Módulo 1: Como funciona o email · Tempo de leitura: 10 minutos

Objetivo de aprendizagem: Após esta lição, saberá ler uma conversa SMTP, explicar o que fazem EHLO, MAIL FROM, RCPT TO e DATA, e reconhecer, através de um código de resposta, se um erro é temporário ou definitivo.

Conceitos-chave: SMTP (RFC 5321), sessão, EHLO/HELO, MAIL FROM, RCPT TO, DATA, QUIT, código de resposta (2xx, 3xx, 4xx, 5xx), código de estado alargado, extensões (STARTTLS, AUTH, SIZE), null MX

Uma conversa em texto simples

O SMTP é um protocolo muito antigo (a primeira versão é de 1982) e, por isso, muito legível. Dois servidores trocam linhas de texto entre si. O remetente (o cliente) envia um comando, o destinatário (o servidor) responde com um número de três algarismos e uma breve explicação. Pode ler literalmente uma destas conversas numa mensagem de erro ou num registo (log), e é exatamente por isso que vale a pena compreendê-la.

Segue-se uma conversa completa. S: é o servidor recetor, C: o servidor remetente. A mensagem vai de anna@example.com para jan@example.net.

S: 220 mx1.mailprovider.example ESMTP ready
C: EHLO out.hosting.example
S: 250-mx1.mailprovider.example Hello out.hosting.example [192.0.2.25]
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 Ready to start TLS
   (a partir daqui, a ligação está cifrada; o cliente envia novamente EHLO)
C: EHLO out.hosting.example
S: 250 ...
C: MAIL FROM:<anna@example.com> SIZE=24310
S: 250 2.1.0 Ok
C: RCPT TO:<jan@example.net>
S: 250 2.1.5 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: Anna <anna@example.com>
C: To: Jan <jan@example.net>
C: Subject: Orçamento
C: Date: Sun, 8 Nov 2026 10:15:00 +0100
C: Message-ID: <a1b2c3@example.com>
C:
C: Olá Jan, envio em anexo o orçamento.
C: .
S: 250 2.0.0 Ok: queued as 4F2A1B
C: QUIT
S: 221 2.0.0 Bye

Os comandos, um a um

ComandoSignificadoAtenção
(ligação)O servidor cumprimenta com 220 e o seu nome.A isto chama-se o banner. Se o servidor disser logo 554, significa que não quer sequer falar com o seu IP (frequentemente, uma lista de bloqueio).
EHLO nome"Olá, eu sou out.hosting.example." O servidor responde com as extensões que conhece.O nome deve ser o nome real do servidor de envio, de preferência igual ao seu registo PTR (lição 5.1). HELO é a variante antiga, sem extensões.
STARTTLS"A partir de agora, vamos cifrar."Só se o servidor o oferecer. Entre servidores, isto é normalmente voluntário (lição 5.4).
MAIL FROM:<endereço>O remetente do envelope: é para aqui que vão as mensagens de erro.Mais tarde, torna-se o cabeçalho Return-Path. O SPF verifica este endereço. Um remetente vazio <> é utilizado pelos próprios servidores para mensagens de erro, para que um bounce nunca gere outro bounce.
RCPT TO:<endereço>O destinatário. Pode repetir-se várias vezes, um por destinatário.Aqui, o servidor já deveria dizer se o endereço existe. Um 550 5.1.1 neste momento é um erro limpo, logo conhecido.
DATA"Agora segue a mensagem em si." O servidor responde 354.Depois seguem-se os cabeçalhos, uma linha em branco e o texto. Uma linha apenas com um ponto encerra a mensagem.
QUITFim da conversa.

A conclusão mais importante: tudo o que vem antes de DATA é o envelope, tudo o que vem depois é o conteúdo. O que consta em MAIL FROM e o que consta no cabeçalho From: são fornecidos separadamente e não têm de ser iguais. O servidor entrega com base em RCPT TO; a linha To: no conteúdo não desempenha qualquer papel na entrega.

Os códigos de resposta

O primeiro algarismo do código é o mais importante:

Começa porSignificadoO que faz o remetente?
2Sucesso.Avança para o passo seguinte. 250 após DATA significa: o servidor aceitou a mensagem e é agora responsável por ela.
3Continue, estou à espera de mais.Só ocorre com 354 após DATA (e na autenticação).
4Erro temporário: agora não, tente mais tarde.A mensagem permanece na fila de espera e é reenviada mais tarde.
5Erro definitivo: isto não vai funcionar.O remetente desiste e envia uma mensagem de erro (bounce) para o remetente do envelope.

A seguir aos três algarismos, os servidores modernos apresentam um código de estado alargado na forma class.subject.detail (RFC 3463), por exemplo 5.1.1. O primeiro algarismo é novamente 2, 4 ou 5. O segundo algarismo indica o tema: 1 = endereço, 2 = caixa de correio, 3 = sistema de correio, 4 = rede e encaminhamento, 5 = protocolo, 6 = conteúdo, 7 = segurança e política. Alguns exemplos frequentes:

550 5.1.1  The email account that you tried to reach does not exist
452 4.2.2  Mailbox full (temporário)
552 5.3.4  Message size exceeds fixed limit
451 4.7.1  Greylisted, please try again later
550 5.7.1  Message rejected (política: spam, lista de bloqueio, DMARC)

No módulo 6, aprenderá a ler um bounce completo e encontrará uma tabela com os códigos mais frequentes.

Porque é tão importante distinguir temporário de definitivo

Um servidor em dúvida responde frequentemente com um 4xx. Um exemplo conhecido é o greylisting: um servidor que ainda não conhece um remetente diz, da primeira vez, "tente mais tarde". Um servidor de correio genuíno volta a tentar ao fim de alguns minutos; muitos programas de spam não o fazem. Também os grandes destinatários utilizam o 4xx para reduzir o ritmo quando ainda não confiam num endereço IP. Para si, como remetente, isto significa: atraso, mas não perda. O sistema resolve-o normalmente por si próprio.

Um 5xx é diferente. Nesse caso, o remetente não volta a tentar. Se receber um 5xx, alguém tem de alterar algo: o endereço, o conteúdo ou as definições do domínio de envio.

Uma armadilha: alguns servidores devolvem um 5xx quando o problema é, na verdade, temporário (por exemplo, numa caixa de correio cheia, 552 5.2.2), e outros devolvem um 4xx para algo que nunca vai funcionar. Leia, por isso, sempre o texto a seguir ao código, não apenas o número.

Quem é responsável?

Após o 250 no ponto final de DATA, a responsabilidade passa para o servidor recetor. Se este, posteriormente, não conseguir colocar a mensagem na caixa de correio, tem de enviar ele próprio uma mensagem de erro. É essa a origem de um fenómeno incómodo: o backscatter. Um servidor que primeiro aceita tudo e só depois verifica que o endereço não existe envia um bounce para o remetente do envelope. Se esse remetente tiver sido forjado por um spammer, um terceiro inocente recebe o bounce. Por isso, os servidores deveriam recusar já em RCPT TO o que não é possível entregar (ver também catch-all na lição 3.3).

Na prática: ver o SMTP no seu próprio ambiente

Um utilizador comum raramente vê a conversa SMTP na íntegra, mas vê-a em fragmentos:

  • num bounce encontra a última linha da conversa, por exemplo Remote-MTA: mx1.mailprovider.example e Diagnostic-Code: smtp; 550 5.1.1 ...;
  • nos cabeçalhos de uma mensagem recebida, encontra, por cada servidor, uma linha Received: com o nome EHLO e o endereço IP (lição 1.5);
  • num painel com registo de correio, como o Rastreamento de e-mails no DirectAdmin da WebOké, pode ver, por cada mensagem, a resposta do servidor recetor. Noutros fornecedores, isto pode chamar-se, por exemplo, rastreamento de mensagens ou mail log, e o conteúdo é semelhante.

Não precisa, portanto, de estabelecer ligação a um servidor de correio para conseguir ler isto. Quem quiser experimentar pode, com openssl s_client -starttls smtp -connect server:25, conduzir a conversa manualmente, mas muitos fornecedores de internet residencial bloqueiam o tráfego de saída na porta 25 (lição 1.4).

Resumo

  • O SMTP é uma conversa legível: EHLO, (STARTTLS), MAIL FROM, RCPT TO, DATA, QUIT.
  • Tudo antes de DATA é envelope (entrega e mensagens de erro), tudo depois é o conteúdo com os cabeçalhos que vê.
  • 2xx = sucesso, 4xx = temporário (nova tentativa mais tarde), 5xx = definitivo (bounce).
  • O código alargado X.Y.Z indica o tema em causa; X.1 endereço, X.2 caixa de correio, X.7 política e segurança.
  • Leia sempre o texto a seguir ao código; os servidores nem sempre são consistentes.

Quiz

1. Que comando contém o endereço para onde vai uma mensagem de erro?



2. Um servidor responde 451 4.7.1 Greylisted, please try again later. O que faz um bom servidor de envio?



3. Em que parte da conversa se encontra o cabeçalho Subject:?



4. O que indica o segundo algarismo em 550 5.1.1?



5. Por que razão é preferível que um servidor recuse um endereço inexistente logo em RCPT TO, em vez de aceitar primeiro a mensagem?



Exercício

Exercício Z1.2: Um domínio que não recebe correio. Procure os registos MX de example.com. Indique o que encontra e escolha o que faz um servidor de envio com correio destinado a info@example.com: (a) entregar ao servidor com prioridade 0, (b) tentar o registo A, (c) desistir imediatamente, ou (d) tentar novamente mais tarde. O programa consulta o registo MX ao vivo e verifica a resposta.

Exercício Z1.2: Um domínio que não recebe correio

Consulte os registos MX de example.com e indique o que um servidor de envio faz com o correio para info@example.com.



O que preenche e o que encontramos não ficam guardados. O seu navegador memoriza as suas respostas e se concluiu o exercício com sucesso. Se tiver sessão iniciada, guardamos apenas que concluiu o exercício (quase) com sucesso em Os meus cursos; aí também o pode eliminar.

Para saber mais

Os passos descritos nestes artigos aplicam-se aos painéis da WebOké; noutros fornecedores, o funcionamento é semelhante.

Um momento…

Configurar os seus domínios

Para cada domínio, defina os servidores de nomes, a ligação ao seu alojamento e quem fica como titular.

A carregar os seus domínios…