
Eu configurei meu servidor Debian para msmtp
enviar e-mails. Os casos de uso atuais são, por exemplo, o envio de um relatório diário logwatch
para o e-mail do meu provedor.
echo "$body" | mutt -s "$topic" -- "[email protected]"
Eu configurei msmtp
por meio de um msmtprc
arquivo 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 newaliases
e 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/aliases
da 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 msmtp
pela primeira vez.
/etc/aliases
o padrão depostmaster: root
deu azia às coisas. Revelado apenas pormsmtp -v
- resolvido mudando a linha para
postmaster: [email protected]
- resolvido mudando a linha para
colocar
aliases /etc/aliases
em/etc/msmtprc
ou~/.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.
- Adicione uma linha como esta em
/etc/msmtprc
:
aliases /etc/aliases.msmtp
- Crie o arquivo
/etc/aliases.msmtp
que 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 -v
opção msmtp e enviando um e-mail de teste.
Eu recomendo seguir /etc/aliases
.