/etc/aliases

/etc/aliases

Eu configurei meu servidor Debian para msmtpenviar e-mails. Os casos de uso atuais são, por exemplo, o envio de um relatório diário logwatchpara o e-mail do meu provedor.

echo "$body" | mutt -s "$topic" -- "[email protected]"

Eu configurei msmtppor meio de um msmtprcarquivo global localizado em /etc/msmtprc. Conteúdo mostrado abaixo.

A próxima coisa que quero configurar é que meu e-mail da minha conta root (por exemplo, saída do crontabs) também seja enviado para o e-mail do meu provedor.

Pesquisei no Google e descobri, por exemplo, no wiki do Arch, que deveria apenas configurar meus aliases. O que fiz na parte inferior do arquivo de configuração msmtp.

No entanto, depois de executar newaliasese tentar executar

echo test | mail -s "test message" root

eu recebo o erro

send-mail: /etc/aliases: line 2: invalid address 'postmaster'
Can't send mail: sendmail process failed with error code 78

Não tenho certeza de como posso consertar isso. O alias mostrado abaixo é o que já estava presente. Adicionei apenas o endereço do Gmail.

Acho que poderia simplesmente colocar um novo arquivo de aliases, mas isso pode interromper outros serviços que dependem dele. Ou seja, não sei qual é a maneira correta de consertar isso.

/etc/aliases

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: christphe, [email protected]

/etc/msmtprc

# ------------------------------------------------------------------------------
# msmtp System Wide Configuration file
# ------------------------------------------------------------------------------

# A system wide configuration is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.

# ------------------------------------------------------------------------------
# Accounts
# ------------------------------------------------------------------------------

account isp
host mail.isp.net
port 587
from [email protected]
auth login
user [email protected]
password foobar
syslog LOG_MAIL

logfile /var/log/msmtp.log

# ------------------------------------------------------------------------------
# Configurations
# ------------------------------------------------------------------------------

# Construct envelope-from addresses of the form "[email protected]".
#auto_from on
#maildomain fermmy.server

# Use TLS.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
# Must be done within "account" sub-section above
#syslog LOG_MAIL

# Set a default account
account default : isp

aliases /etc/aliases
# ------------------------------------------------------------------------------#

Responder1

Atualização 17/10/2019

A versão 1.8.6 do msmtp (lançada em 27/09/2019) agora tem suporte nativo para expansão de alias encadeada/recursiva no /etc/aliases. Verhttps://marlam.de/msmtp/news/msmtp-1-8-6/.

Resposta Original

Então, tive exatamente o mesmo problema quando migrei do ssmtp para o msmtp. O problema é causado pelois_address()função em aliases.c. Basicamente, se o destino do alias não contiver '@', o msmtp pensará que é inválido e morrerá. Você pode contornar isso apenas anexando @ a todos os aliases que redirecionam para root.

No seu exemplo, você modificaria /etc/aliasesda seguinte forma:

# /etc/aliases
mailer-daemon: postmaster@
postmaster: root@
nobody: root@
hostmaster: root@
usenet: root@
news: root@
webmaster: root@
www: root@
ftp: root@
abuse: root@
noc: root@
security: root@
root: christphe@, [email protected]

Pretendo registrar um bug/problema no msmtp para alterar esse comportamento, para que funcione e atualize esta resposta.

Responder2

Encontrei duas coisas hoje sobre isso ao tentar msmtppela primeira vez.

  1. /etc/aliaseso padrão de postmaster: rootdeu azia às coisas. Revelado apenas pormsmtp -v

  2. colocaraliases /etc/aliasesem /etc/msmtprcou~/.msmtprc

Responder3

A próxima coisa que quero configurar é que meu e-mail da minha conta root (por exemplo, saída do crontabs) também seja enviado para o e-mail do meu provedor.

  1. Adicione uma linha como esta em /etc/msmtprc:
   aliases /etc/aliases.msmtp
  1. Crie o arquivo /etc/aliases.msmtpque contém esta linha:
   default: [email protected]

Responder4

msmtp e AppArmor não funcionam bem juntos. O AppArmor aceitou a leitura do msmtpd /etc/aliases , mas recusou a leitura /etc/aliases.msmtp.

Encontrei o problema usando a -vopção msmtp e enviando um e-mail de teste.

Eu recomendo seguir /etc/aliases.

informação relacionada