/etc/aliases

/etc/aliases

Я настроил свой сервер Debian msmtpдля отправки писем. Текущий вариант использования — например, отправка ежедневного отчета logwatchна почту моего интернет-провайдера.

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

Я выполнил настройку msmtpс помощью глобального msmtprcфайла, расположенного по адресу /etc/msmtprc. Содержимое показано ниже.

Следующее, что я хочу настроить, это то, чтобы моя электронная почта для моей учетной записи root (например, вывод из crontab-файлов) также отправлялась на электронную почту моего интернет-провайдера.

Я погуглил и нашел, например, на Arch wiki, что мне просто нужно настроить свои псевдонимы. Что я и сделал в нижней части файла конфигурации msmtp.

Однако после запуска newaliasesи попытки выполнить

echo test | mail -s "test message" root

Я получаю сообщение об ошибке

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

Я не уверен, как это исправить. Псевдоним, показанный ниже, уже присутствовал. Я только добавил адрес gmail.

Я думаю, я мог бы просто добавить новый файл псевдонимов, но это может сломать другие службы, которые полагаются на это. То есть, я не знаю, как правильно это исправить.

/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
# ------------------------------------------------------------------------------#

решение1

Обновление 2019-10-17

Версия msmtp 1.8.6 (выпущена 27.09.2019) теперь имеет встроенную поддержку для расширения цепочечных/рекурсивных псевдонимов в /etc/aliases. Смотретьhttps://marlam.de/msmtp/news/msmtp-1-8-6/.

Оригинальный ответ

Итак, у меня была точно такая же проблема, когда я мигрировал с ssmtp на msmtp. Проблема вызванаis_address()функция в aliases.c. В принципе, если цель псевдонима не содержит '@', msmtp считает его недействительным и умирает. Вы можете обойти это, просто добавив @ ко всем псевдонимам, которые перенаправляют на root.

В вашем примере вы бы изменили /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]

Я планирую зарегистрировать ошибку/проблему с msmtp, чтобы изменить это поведение и заставить его работать, а затем обновлю этот ответ.

решение2

Сегодня, когда я msmtpвпервые попробовал, обнаружил 2 вещи.

  1. /etc/aliasesпо умолчанию postmaster: rootдал вещи изжога. Только показалmsmtp -v

    • решено путем изменения строки наpostmaster: [email protected]
  2. помещатьaliases /etc/aliasesв /etc/msmtprcили~/.msmtprc

решение3

Следующее, что я хочу настроить, это то, чтобы моя электронная почта для моей учетной записи root (например, вывод из crontab-файлов) также отправлялась на электронную почту моего интернет-провайдера.

  1. Добавьте такую ​​строку /etc/msmtprc:
   aliases /etc/aliases.msmtp
  1. Создайте файл /etc/aliases.msmtp, содержащий следующую строку:
   default: [email protected]

решение4

msmtp и AppArmor плохо работают вместе. AppArmor нормально читал msmtpd, /etc/aliases но отказывался читать /etc/aliases.msmtp.

Я обнаружил проблему, воспользовавшись -vопцией msmtp и отправив тестовое письмо.

Я рекомендую придерживаться /etc/aliases.

Связанный контент