PROJETO 01 • MENSAGERIA

Carteiro

Um projeto progressivo para entender envio de e-mails, SMTP, APIs síncronas e, nas próximas etapas, processamento assíncrono e mensageria.

.NET 8ASP.NET CoreMailKitSMTPRabbitMQ

01 — PROBLEMA

Por que estudar mensageria a partir de e-mail?

Enviar um e-mail parece simples até a aplicação precisar esperar um servidor externo responder. Esse cenário é útil para observar, na prática, latência, dependência externa, falhas transitórias e acoplamento entre a requisição do usuário e o processamento.

A primeira versão é propositalmente síncrona. A limitação faz parte do estudo.

02 — ARQUITETURA ATUAL

HTTP entra. SMTP sai.

ClientePOST /emails
→
Carteiro APIASP.NET Core
→
Servidor SMTPSTARTTLS
→
DestinatárioE-mail

A API só responde depois que a comunicação SMTP termina. Se o servidor SMTP ficar lento, a requisição também fica lenta.

03 — EVOLUÇÃO

O projeto cresce junto com os conceitos.

01
SMTP direto

Aplicação console enviando um único e-mail.

02
API HTTP síncrona

Endpoint POST /emails com envio via MailKit.

03
Persistência

Registrar e-mail, estado e histórico.

04
Fila + worker

Separar recebimento HTTP do processamento.

05
ACK/NACK e retry

Tratar falhas temporárias de forma explícita.

06
DLQ e idempotência

Evitar perda e duplicidade de mensagens.

04 — CONCEITOS

O que o projeto pretende demonstrar.

SMTP

Cliente, servidor, autenticação e STARTTLS.

Sincronicidade

Como dependências externas afetam o tempo de resposta.

Mensageria

Separação entre produção e processamento.

Resiliência

Retry, DLQ, confirmação e recuperação de falhas.

05 — PRÓXIMOS PASSOS

Próxima etapa: tirar o SMTP do caminho crítico.

HTTP APIProducer
→
RabbitMQQueue
→
WorkerConsumer
→
SMTPEnvio
Ver código no GitHub ↗