Em migração de e-mail entre painéis, dois problemas aparecem com alta frequência: diferença entre uso real de mailbox e uso exibido no painel, e falha de entrega com SMTPUTF8 used when not advertised.
Neste caso, tratei os dois no mesmo ciclo de manutenção para restaurar previsibilidade operacional do MTA e do armazenamento.
1) Quota inconsistente: diagnóstico técnico antes de mexer
Sintoma:
- painel mostra caixa “lotada”, mas disco aparenta espaço livre;
- ou painel mostra uso baixo, porém envio/recebimento falha por quota.
1.1 Medição real por Maildir
du -h --max-depth=1 /home/usuario/mail/domain.com/ | sort -h
1.2 Conferência de quota no Dovecot
doveadm quota get -u contato@domain.com
Se du e doveadm divergem muito, o cenário costuma ser índice maildirsize obsoleto após restore/migração.
2) Correção da quota (runbook aplicado)
2.1 Backup rápido dos índices de quota
find /home/usuario/mail/domain.com/ -name "maildirsize" -print > /root/maildirsize-backup-list.txt
2.2 Remoção controlada de índices antigos
find /home/usuario/mail/domain.com/ -name "maildirsize" -exec rm -f {} \;
2.3 Recalcular quota por mailbox
doveadm quota recalc -u contato@domain.com
Em lote para domínio:
for m in $(ls /home/usuario/mail/domain.com); do
doveadm quota recalc -u "$m@domain.com"
done
2.4 Sincronizar cache do painel (cPanel)
/scripts/update_db_cache
2.5 Validação pós-correção
doveadm quota get -u contato@domain.com
du -sh /home/usuario/mail/domain.com/contato/
Critério de aceite: valores convergentes e ausência de erro de quota na UI/MTA.
3) Falha SMTPUTF8: por que ocorre
Erro típico:
SMTPUTF8 used when not advertised
Causa:
- servidor de destino não anuncia extensão SMTPUTF8 (RFC 6531);
- origem tenta usar envelope/cabeçalho com UTF-8 forçado.
3.1 Encontrar ocorrências na fila/log
grep -i "smtputf8" /var/log/exim_mainlog | tail -n 200
exim -bp | head -n 50
4) Ajuste no Exim para compatibilidade operacional
No WHM (Exim Configuration Manager > Advanced Editor), revisar smtputf8_advertise_hosts.
Quando o ambiente exige compatibilidade máxima com destinos legados, manter essa diretiva vazia é uma estratégia válida.
Após ajuste:
exim -bV | head -n 40
systemctl restart exim
4.1 Limpeza de fila afetada por tentativas antigas
exim -bp | grep -i "smtputf8" | awk '{print $3}' | xargs -r exim -Mrm
Se quiser reinsistir entregas antes de remover:
exim -qff
5) Auditoria de impacto pós-migração (admin users em WordPress)
Como parte do saneamento do ambiente migrado, rodei auditoria de contas admin em massa para eliminar risco de credenciais antigas indevidas.
#!/bin/bash
OUTPUT="relatorio_admins.csv"
echo "Dominio,User,Email,Role" > "$OUTPUT"
for user in $(ls /var/cpanel/users/); do
PUBLIC_HTML="/home/$user/public_html"
if [ -d "$PUBLIC_HTML" ] && [ -f "$PUBLIC_HTML/wp-config.php" ]; then
DOMINIO=$(grep "^DNS=" /var/cpanel/users/"$user" | cut -d= -f2)
sudo -u "$user" -i -- \
wp user list --role=administrator --format=csv --path="$PUBLIC_HTML" \
>> "$OUTPUT"
fi
done
6) Checklist final de validação
ducoerente comdoveadm quota get.- sem erro de quota no painel.
- sem
SMTPUTF8 used when not advertisedem novos envios. - fila Exim sem acumular mensagens pelo mesmo motivo.
- envio externo para domínios legados funcionando.
Quota e SMTPUTF8 são problemas diferentes, mas em migração costumam aparecer juntos. Corrigindo índice Maildir, recalculando Dovecot e ajustando anúncio do Exim, o serviço volta a operar com estabilidade.
Este post está licenciado sob CC BY-NC.
Comentários
Participe da discussão abaixo.
Comentários ainda não configurados. Adicione as opções do Cusdis em /assets/json/config/blog-comments-config.json.