메일을 보내 도록 데비안 서버를 구성했습니다 msmtp
. 예를 들어, 현재 사용 사례는 logwatch
ISP 이메일로 일일 보고서를 보내는 것입니다.
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
두 가지 사실을 발견했습니다 .
/etc/aliases
기본값은postmaster: root
상황을 가슴 아프게 만듭니다. 에 의해서만 공개됨msmtp -v
- 줄을 다음으로 변경하여 해결되었습니다.
postmaster: [email protected]
- 줄을 다음으로 변경하여 해결되었습니다.
놓다
aliases /etc/aliases
또는/etc/msmtprc
~/.msmtprc
답변3
다음으로 구성하고 싶은 것은 내 루트 계정의 이메일(예: crontab의 출력)도 내 isp 이메일로 전송된다는 것입니다.
- 위와 같은 줄을 추가합니다
/etc/msmtprc
.
aliases /etc/aliases.msmtp
/etc/aliases.msmtp
다음 줄을 포함하는 파일을 만듭니다.
default: [email protected]
답변4
msmtp와 AppArmor는 함께 잘 작동하지 않습니다. AppArmor는 msmtpd에서 읽기를 허용할 수 있지만 /etc/aliases
읽기를 주저합니다 /etc/aliases.msmtp
.
-v
msmtp 옵션을 사용하고 테스트 이메일을 보내 문제를 발견했습니다.
지속하는 것이 좋습니다 /etc/aliases
.