ligbox-ops-platform/docs/EMAIL_LIGBOX_VM112.md
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

3.9 KiB

E-mail Ligbox — arquitetura corrigida (VM112)

Atualizado: 2026-06-19 (Roger)
Estado: Produção validada


Regra de ouro

Domínio Servidor Carbonio IP Hostname SMTP
ligbox.com.br VM112 10.10.10.112 mail.ligbox.com.br
dratcoin.com, ibytera.com, tenants onboarding VM112 10.10.10.112 mail.ligbox.com.br
nutranik.com VM108 (outro produto) 10.10.10.108 mail.ligbox.com.br (hostname partilhado, domínio diferente)

Não usar VM108 para @ligbox.com.br. Caixas Ligbox (admin@, rogerio@, ops@, etc.) vivem na VM112.

Não criar domínios/contas itecnologys.com na VM112 — notificações admin usam admin@ligbox.com.br.


Wizard onboarding (VM112)

Parâmetro Valor
NOTIFY_ADMIN_EMAIL admin@ligbox.com.br
NOTIFY_FROM_EMAIL noreply@ligbox.com.br
SMTP_HOST / SMTP_PORT 127.0.0.1:25 (Postfix Carbonio local)

Ficheiro env: /opt/ligbox-deploy/env/.env (carregado pelo systemd ligbox-wizard.service)

Código: backend/app/services/notifications.py — dispara admin, cliente e boas-vindas em POST /api/onboarding/account/create.

Doc operacional: NOTIFICACOES_E_TERMINAL.md


Desk Ops / técnicos (VM122)

Postfix na VM122 é MTA local da API Desk (mail_notify.py).

transport_maps (/etc/postfix/transport)

ligbox.com.br   lmtp:[10.10.10.112]:7025
ibytera.com     lmtp:[10.10.10.112]:7025
dratcoin.com    lmtp:[10.10.10.112]:7025

API Docker (.env)

DESK_SMTP_HOST=10.10.10.122
DESK_SMTP_PORT=25
DESK_MAIL_FROM=ligbox-ops@ligbox.com.br
DESK_ROOT_NOTIFY_EMAIL=admin@ligbox.com.br

Cadastro de técnicos

  • Preferir e-mails @ligbox.com.br (Spec 004).
  • OTP, aprovação e notificações root → admin@ligbox.com.br na VM112.

Doc Desk: ligbox-ops-platform/docs/postfix-vm122.md


Problema corrigido (2026-06-19)

Sintoma Causa Correção
Admin não recebia e-mail do wizard NOTIFY_ADMIN_EMAIL=admin@itecnologys.com — caixa inexistente no Carbonio admin@ligbox.com.br
Desk OTP / aprovação não chegava VM122 enviava @ligbox.com.br para LMTP VM108 (domínio não existe lá) transportVM112:7025
Fila presa @itecnologys.com MX público timeout postsuper -d ALL deferred; usar @ligbox.com.br no Desk

Testes rápidos

VM112 — wizard SMTP

cd /opt/ligbox-wizard/backend
/opt/ligbox-wizard/.venv/bin/python3 - <<'PY'
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("teste wizard")
msg["Subject"] = "[TEST] wizard admin"
msg["From"] = "noreply@ligbox.com.br"
msg["To"] = "admin@ligbox.com.br"
with smtplib.SMTP("127.0.0.1", 25, timeout=15) as s:
    s.sendmail(msg["From"], [msg["To"]], msg.as_string())
print("OK")
PY

VM122 — Desk SMTP

python3 - <<'PY'
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["From"] = "ligbox-ops@ligbox.com.br"
msg["To"] = "admin@ligbox.com.br"
msg["Subject"] = "[TEST] desk"
msg.set_content("teste desk")
with smtplib.SMTP("127.0.0.1", 25, timeout=15) as s:
    s.send_message(msg)
print("OK")
PY
journalctl | grep "admin@ligbox.com.br" | tail -3

Resultado esperado na VM122: status=sent via relay=10.10.10.112:7025.


Documentos relacionados

Documento Conteúdo
NOTIFICACOES_E_TERMINAL.md Notificações wizard (admin, cliente, boas-vindas)
SPEC_FUNCIONAL_VM112_LIGBOX_ONBOARD.md Spec funcional VM112
ligbox-ops-platform/docs/postfix-vm122.md Postfix Desk
ligbox-ops-platform/specs/004-desk-account-management/ Cadastro e OTP técnicos