/etc/aliases

/etc/aliases

메일을 보내 도록 데비안 서버를 구성했습니다 msmtp. 예를 들어, 현재 사용 사례는 logwatchISP 이메일로 일일 보고서를 보내는 것입니다.

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

msmtp에 있는 전역 파일을 통해 msmtprc구성 했습니다 /etc/msmtprc. 내용은 아래와 같습니다.

다음으로 구성하고 싶은 것은 내 루트 계정의 이메일(예: crontab의 출력)도 내 isp 이메일로 전송된다는 것입니다.

예를 들어 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(2019-09-27에 출시됨)이 이제 기본적으로 지원됩니다 /etc/aliases.https://marlam.de/msmtp/news/msmtp-1-8-6/.

원래 답변

그래서 ssmtp에서 msmtp로 마이그레이션했을 때 똑같은 문제에 직면했습니다. 이 질문의 원인은 다음과 같습니다.is_address()aliases.c의 함수. 기본적으로 별칭의 대상이 포함되지 않으면 '@'msmtp는 이를 유효하지 않은 것으로 간주하여 종료합니다. 루트로 리디렉션되는 모든 별칭에 @를 추가하면 이 문제를 해결할 수 있습니다.

/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두 가지 사실을 발견했습니다 .

  1. /etc/aliases기본값은 postmaster: root상황을 가슴 아프게 만듭니다. 에 의해서만 공개됨msmtp -v

  2. 놓다aliases /etc/aliases또는/etc/msmtprc~/.msmtprc

답변3

다음으로 구성하고 싶은 것은 내 루트 계정의 이메일(예: crontab의 출력)도 내 isp 이메일로 전송된다는 것입니다.

  1. 위와 같은 줄을 추가합니다 /etc/msmtprc.
   aliases /etc/aliases.msmtp
  1. /etc/aliases.msmtp다음 줄을 포함하는 파일을 만듭니다.
   default: [email protected]

답변4

msmtp와 AppArmor는 함께 잘 작동하지 않습니다. AppArmor는 msmtpd에서 읽기를 허용할 수 있지만 /etc/aliases 읽기를 주저합니다 /etc/aliases.msmtp.

-vmsmtp 옵션을 사용하고 테스트 이메일을 보내 문제를 발견했습니다.

지속하는 것이 좋습니다 /etc/aliases.

관련 정보