
msmtp
메일 전송에 사용하도록 Debian 서버를 구성했습니다 . 현재 사용 사례는 예를 들어 logwatch
내 isp 이메일로 일일 보고서를 보내는 것입니다 .
echo "$body" | mutt -s "$topic" -- "[email protected]"
에 있는 msmtp
전역 파일을 사용하여 구성했습니다 . 아래에 표시된 내용입니다.msmtprc
/etc/msmtprc
다음으로 구성하고 싶은 것은 내 루트 계정의 이메일(예: crontabs의 출력)이 내 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
오늘 처음 시도했을 때 이것에 대해 2가지를 발견했습니다 .
/etc/aliases
불이행 으로 인해 속쓰림이 발생했습니다postmaster: root
. 에 의해서만 공개됨msmtp -v
- 줄을 다음으로 변경하여 해결
postmaster: [email protected]
- 줄을 다음으로 변경하여 해결
놓다
aliases /etc/aliases
또는/etc/msmtprc
~/.msmtprc
답변3
다음으로 구성하고 싶은 것은 내 루트 계정의 이메일(예: crontabs의 출력)이 내 isp 이메일로도 전송된다는 것입니다.
- 다음과 같은 줄을 추가하십시오
/etc/msmtprc
.
aliases /etc/aliases.msmtp
/etc/aliases.msmtp
다음 줄을 포함하는 파일을 만듭니다 .
default: [email protected]
답변4
msmtp와 AppArmor는 함께 잘 작동하지 않습니다. AppArmor는 msmtpd 읽기에는 괜찮았지만 /etc/aliases
읽기에는 어려움을 겪었습니다 /etc/aliases.msmtp
.
msmtp 옵션을 사용 -v
하고 테스트 메일을 보내서 문제를 발견했습니다.
를 고수하는 것이 좋습니다 /etc/aliases
.