O que faz este módulo #
Muitas coisas no servidor avisam-te por correio: um certificado prestes a expirar, um disco a encher-se, o report de uma tarefa noturna. Mas um servidor acabado de instalar não sabe como enviar esse correio — ou tenta entregá-lo diretamente e acaba na pasta de spam, quando não é rejeitado logo à partida.
O módulo smtp resolve isso configurando o correio de saída do servidor contra um smarthost (um relay que está de facto autorizado a entregar: Amazon SES, um servidor de correio corporativo, o teu fornecedor…). Ajusta o postfix para que reencaminhe todo o correio do sistema para esse smarthost, guarda a palavra-passe de forma segura, reescreve o remetente para que seja válido e deixa-te testar o envio para confirmar que chega — reportando o erro real se algo falhar.
Tem à mão os dados do teu smarthost: host, porta (normalmente 587) e as credenciais se exigir autenticação. A palavra-passe não se passa na linha de comandos: lê-se do stdin ou do cofre de segredos, para que nunca fique no teu histórico.
Tarefas comuns #
Escolhe o que queres fazer. Cada receita traz o comando já escrito — basta trocar pelo teu próprio smarthost e remetente, e clicar em Copiar.
1
Configurar o relay de correio
Aponta o servidor ao teu smarthost para que o correio saia mesmo.
Liga-te por SSH ao teu servidor com o utilizador ubuntu.
Executa o comando com os dados do teu smarthost. A palavra-passe é pedida via stdin, por isso nunca fica no teu histórico:
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]Se o teu smarthost não exigir autenticação, omite --user. Para uma porta ou modo TLS diferente, adiciona --port ou --no-tls.
[email protected]. Continua com a receita Enviar um correio de teste.2
Enviar um correio de teste
Confirma que uma mensagem sai e chega antes de confiares nos alertas.
Envia um correio de teste para um endereço onde o possas verificar:
$ sudo imaxe smtp test --to [email protected]Se omitires --to, é enviado ao remetente configurado. Verifica a tua caixa de entrada (e a pasta de spam) para confirmar a entrega.
3
Ver o estado do correio
Verifica num relance se o relay está configurado e ativo.
Um resumo do relay, do smarthost, do remetente e do estado do MTA:
$ sudo imaxe smtp statusPrecisas dele para um script ou um painel? Adiciona --json para saída legível por máquina:
$ sudo imaxe smtp status --json4
Ver a configuração efetiva
Consulta os parâmetros ativos sem expor a palavra-passe.
Mostra o host, a porta, o utilizador, o remetente e o modo TLS realmente em uso (a palavra-passe nunca é impressa):
$ sudo imaxe smtp show5
Remover o relay
Desativa o reencaminhamento e devolve o postfix ao seu estado anterior.
Desativa o relay de correio de saída e restaura a configuração base do postfix:
$ sudo imaxe smtp removeconfigure.A causa mais comum é o remetente não estar verificado no smarthost (o SES exige verificar o domínio ou o endereço --from), ou as credenciais estarem erradas. Executa imaxe smtp test: devolve o erro real do MTA para saberes exatamente o que ajustar.
Sinopse #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]Todos os subcomandos requerem privilégios de root (usa sudo) porque tocam na configuração do postfix, escrevem em /etc/imaxe/ e recarregam serviços do sistema. A palavra-passe do smarthost nunca se passa como flag: lê-se do stdin ou do cofre de segredos. Adiciona --json a status ou show para saída legível por máquina, apta para scripting.
Subcomandos #
| Subcomando | O que faz | Flags relevantes |
|---|---|---|
| configure | Configura o relay de correio de saída contra um smarthost. A palavra-passe lê-se de segredos/stdin. | --host, --port, --user, --from, --tls / --no-tls |
| test | Envia um correio de teste e reporta o erro real do MTA se falhar. | --to |
| status | Estado: relay configurado, smarthost, remetente e MTA ativo. | --json |
| show | Mostra a configuração efetiva, sem expor a palavra-passe. | --json |
| remove | Desativa o relay e restaura o postfix. | — |
Argumentos e flags #
| Flag | Tipo | Por omissão | Descrição |
|---|---|---|---|
| --host obr. | string | — | Smarthost SMTP para o qual reencaminhar o correio (ex. email-smtp.eu-west-1.amazonaws.com). Obrigatório em configure. |
| --port | int | 587 | Porta SMTP do smarthost. |
| --user | string | — | Utilizador SMTP para autenticação. Se omitido, o relay é configurado sem autenticação. |
| --from | string | — | Reescreve o remetente de todas as mensagens (sender_canonical). Útil para usar um endereço verificado no smarthost. |
| --tls / --no-tls | bool | --tls | Força TLS na ligação ao smarthost (o valor por omissão). --no-tls desativa-o. |
| --to | string | remitente | Em test: destinatário do correio de teste. Por omissão, o remetente configurado. |
| --json | bool | false | Em status/show, emite o resultado como JSON em stdout. |
Não existe uma opção --password. A credencial lê-se do stdin durante o configure ou do cofre de segredos (password_secret, smtp por omissão), para que nunca apareça no teu histórico nem na tabela de processos.
Ficheiros e caminhos #
| Caminho | Conteúdo |
|---|---|
| /etc/imaxe/smtp.yml | Configuração do módulo: host, porta, TLS, utilizador, remetente e uma referência ao segredo da palavra-passe. |
| /etc/postfix/main.cf | Configuração do postfix que o módulo ajusta para o reencaminhamento (relayhost, sender canonical…). |
| /var/log/mail.log | Log do postfix com cada tentativa de entrega e o motivo das rejeições. |
Exemplo de smtp.yml:
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpCódigos de saída e logs #
Cada execução devolve um código que podes verificar com echo $? — útil para encadear em scripts:
test, o correio foi aceite para entrega.Segue o log de correio em direto enquanto depuras um envio:
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]Resolução de problemas #
| Sintoma | Causa provável | Solução |
|---|---|---|
| Sai AUTH (código 4) | Utilizador ou palavra-passe do smarthost errados. | Verifica o --user e executa configure de novo, reintroduzindo a palavra-passe via stdin. |
| Sai SEND (código 5), remetente rejeitado | O endereço --from não está verificado no smarthost (típico com o SES). | Verifica o domínio ou o endereço com o fornecedor e repete o test. |
| Sai CONFIG (código 3) | O relay ainda não está configurado neste servidor. | Executa imaxe smtp configure com os dados do teu smarthost. |
| O correio sai mas cai no spam | Falta o alinhamento SPF/DKIM no domínio do remetente. | Configura os registos do fornecedor de correio para o domínio do --from. |
Ficou bloqueado com o módulo Correio?
Escreva-nos com a saída de «imaxe <module> status --json» e respondemos rapidamente.