O significado dos horários no e-mail

Um único e-mail pode ter quatro horários diferentes

Horário de disparo, fila, recebimento e exibição não são a mesma coisa. Primeiro, padronize o fuso e defina cada evento; depois, verifique se o código atrasou ou já expirou.

10:00:00 DisparoO usuário envia o formulário de login e o aplicativo cria a tarefa de envio. Esse é o horário da ação de negócio.
10:00:02 Entrada na filaA tarefa de e-mail entra na fila de envio. A diferença entre os dois horários mostra a integração entre o aplicativo e a fila.
10:00:08 RecebimentoO servidor de destino aceita o e-mail. A diferença em relação à entrada na fila representa melhor o atraso de transmissão.
18:00:08 ExibiçãoO navegador exibe o horário local em UTC+8; ele pode representar o mesmo instante que 10:00:08 UTC.
Entenda primeiro o significado

Não subtraia diretamente os horários da interface

Duas máquinas podem mostrar horas diferentes sem que isso signifique atraso na entrega. Primeiro, converta todos os horários para o mesmo fuso ou timestamp.

Horário do disparo da ação

É o momento em que ocorre uma ação do usuário ou um evento do sistema. Ele ajuda a verificar se o produto criou a tarefa de envio no tempo esperado.

Data no cabeçalho do e-mail

Geralmente é registrada pelo sistema remetente e pode ser afetada pelo relógio do servidor, pela fila e pela configuração. Não deve ser considerada, sozinha, uma prova de recebimento.

Horário de recebimento

É o momento em que o sistema destinatário registra a aceitação do e-mail. É mais adequado para medir a chegada real, mas o fuso utilizado ainda precisa estar claro.

Horário exibido na interface

Para facilitar a leitura, o horário é convertido para o formato local do dispositivo. Ao fazer uma captura de tela, registre também o fuso do dispositivo para evitar interpretações erradas entre equipes.

Início da validade

A validade do código pode começar na geração, no envio ou na emissão pelo servidor. Siga sempre o contrato do produto.

Tempo restante na contagem regressiva

A contagem regressiva é um valor derivado. Depois de deixar o app em segundo plano, suspender o dispositivo ou alterar o relógio, recalcule-a usando o horário absoluto de expiração.

Diagnóstico de atrasos

Divida o atraso total em três etapas

Só é possível decidir se você deve investigar os logs do aplicativo, a fila de envio ou a política do sistema destinatário quando sabe em qual etapa o tempo foi gasto.

Criação da tarefa lenta

Quando o intervalo entre o disparo e a entrada na fila é grande, verifique primeiro a requisição do aplicativo, a renderização do template e o serviço de tarefas.

Espera longa na fila

Quando o intervalo entre a entrada na fila e o envio é grande, verifique limites de velocidade, concorrência, tentativas e o status do provedor.

Aceitação da transmissão lenta

Quando o intervalo entre o envio e o recebimento é grande, verifique DNS, reputação, recusas temporárias e políticas do servidor remoto.

Atualização tardia da interface

Se o servidor já recebeu o e-mail, mas ele aparece tarde na lista, verifique a frequência de consulta, o cache e a rede do cliente.

Como testar a expiração de códigos

Confirme primeiro a partir de qual evento do servidor começa a validade. Depois, teste o uso dentro do prazo, antes e depois do limite e em tentativas repetidas. Não substitua a expiração do servidor alterando manualmente o relógio do dispositivo.

  • O uso imediato após a geração deve funcionar
  • O comportamento próximo ao limite de validade deve ser claro
  • Após a emissão de um novo código, o comportamento do código antigo deve seguir o contrato

Como registrar ocorrências entre fusos horários

No relatório de bug, mantenha o horário original em ISO, o deslocamento do fuso e o horário local legível. Se a captura mostrar “10h da manhã”, informe o fuso do dispositivo na descrição.

  • Use o ID do evento para conectar logs de sistemas diferentes
  • Use UTC como referência para comparação da equipe
  • Use o horário local para reproduzir a experiência do usuário
Verificação rápida

Ao ver “atraso”, responda a estas quatro perguntas

As quatro perguntas abaixo eliminam a maioria dos mal-entendidos sobre fusos horários e ajudam a localizar o atraso real no componente do sistema que pode ser investigado.

De onde veio o horário?

Ele vem do log do aplicativo, do cabeçalho do e-mail, do servidor de recebimento ou da lista do navegador? Cada origem representa um evento diferente.

Qual é o fuso horário?

O horário contém Z, um deslocamento explícito ou um fuso regional? Sem fuso, ele é apenas uma evidência incompleta.

Estamos comparando o mesmo e-mail?

O identificador exclusivo no assunto, o endereço de recebimento e o ID da tarefa precisam ser iguais para evitar comparar mensagens reenviadas.