msmtp를 설치한 후 mail 명령을 사용하여 루트에 전자 메일을 보내는 방법은 무엇입니까?

msmtp를 설치한 후 mail 명령을 사용하여 루트에 전자 메일을 보내는 방법은 무엇입니까?

간단한 SMTP 클라이언트를 설치합니다.

sudo apt install msmtp  msmtp-mda

msmtprc::에 설정됨

cat   .msmtprc
account default
host smtp.qq.com
from [email protected]
auth on
tls on
tls_certcheck off
user [email protected]
password  xxxx
logfile ~/.msmtp.log

내 qq 계정을 사용하여 이메일을 보낼 수 있습니다.

echo "Testing msmtp " | mail -s "hi root" -r [email protected]   -- [email protected]

이메일은 Yahoo 이메일에서 찾을 수 있습니다.
새로운 문제를 발견했습니다. 사용자가 시스템의 루트에 이메일을 보낼 수 없습니다!

echo "cron task work done " | mail -s "hi root" root
mail: cannot send message: Process exited with a non-zero status

로그를 확인하세요.

Aug 24 20:47:31 host=smtp.qq.com tls=on auth=on [email protected] [email protected] [email protected] smtpstatus=501 smtpmsg='501 Mail from address must be same as authorization user.' errormsg='envelope from address [email protected] not accepted by the server' exitcode=EX_DATAERR

echo "cron task work done " | mail -s "hi root" -r [email protected]  root

로그 정보:

Aug 29 06:56:39 host=smtp.qq.com tls=on auth=on [email protected] [email protected] [email protected] smtpstatus=501 smtpmsg='501 Mail from address must be same as authorization user.' errormsg='envelope from address [email protected] not accepted by the server' exitcode=EX_DATAERR

메일 명령이 호출될 때마다 반환 호스트를 다음과 같이 지정하더라도 외부 호스트 smtp.qq.com으로 중계됩니다.[이메일 보호됨], mail 명령이 시스템의 사용자와 루트 간에 이메일을 보내도록 만드는 방법은 무엇입니까? msmtp-mda를 설치할 때 postfix나 exim4가 제거된다는 사실이 내 문제와 관련이 있을 수 있다는 사실을 발견했습니다.

답변1

단순 전달 메일 서버( )를 설치했습니다 msmtp. 패키지 설명입니다데비안에서

패키지: msmtp(1.8.23-1)

서버 프로필을 지원하는 경량 SMTP 클라이언트

msmtpMutt 및 기타 MUA(메일 사용자 에이전트)에서 메일을 보내는 데 사용할 수 있는 SMTP 클라이언트입니다. 최종 전달을 담당하는 SMTP 서버(예: 무료 이메일 제공업체)로 메시지를 전달합니다. 프로필을 사용하면 다양한 구성의 다양한 SMTP 서버를 사용하도록 쉽게 구성할 수 있으므로 모바일 클라이언트에 이상적입니다.

여기서 관련 포인트는 "최종 전달을 담당하는 SMTP 서버 [...]로 메일을 전달합니다.".

즉, msmtp이메일을 원격 메일 서버로만 전달할 수 있으며 로컬로 전달할 수는 없습니다. 이렇게 하려면 Exim, Postfix, Sendmail 또는 기타 모든 기능을 갖춘 MTA(Mail Transfer Agents) 중 하나를 설치하십시오.

관련 정보