SSMTP를 통해 이메일을 보낼 때 이러한 "추가" RCPT_TO 라인은 어디에서 나오나요?

SSMTP를 통해 이메일을 보낼 때 이러한 "추가" RCPT_TO 라인은 어디에서 나오나요?

나는 로컬 FreeBSD 컴퓨터에서 SSTMP를 사용하여 일부 cron 작업 등의 출력을 동일한 컴퓨터(또는 도메인)에서 호스팅되지 않는 "실제" 기본 이메일 계정으로 보냈습니다. 예를 들어, 다음과 같이 일일 크론 작업을 설정했습니다.

smartctl -a /dev/ada0 | grep overall-health | mail -s "Silicon daily smartctl" [email protected]

메시지가 내 "실제" 이메일 계정으로 성공적으로 전송되는 한 이는 훌륭하게 작동합니다. 그러나 이메일을 보낼 때마다 "실제" 이메일 계정의 메일 시스템에서 수많은 경고와 반송 메일을 받기도 합니다.

나는 내 SSMTP와 내 "실제" 이메일 계정 호스트 간의 대화를 보여주는 mail"장황한" 플래그가 있다는 것을 발견했습니다 . -v나는 그것을 시도해 보았고 다음과 같은 흥미로운 부분을 발견했습니다.

[->] RCPT TO:<[email protected]>
[<-] 250 Accepted
[->] RCPT TO:</usr/local/sbin/[email protected]>
[<-] 250 Accepted
[->] RCPT TO:<[email protected]>
[<-] 250 Accepted
[->] RCPT TO:</usr/local/sbin/[email protected]>
[<-] 250 Accepted
[->] RCPT TO:<[email protected]>
[<-] 250 Accepted

그렇다면 SSMTP는 메시지가 의도한 수신자에게만 전송되는 것이 아니라 다른 세 개의 주소에도 전송되어야 한다고 말하는 것인가요? 그 중 하나가 특히 이상해 보입니다("/usr/local/sbin/[이메일 보호됨]”) 그리고 어떤 이유로 사람들은RCPT TO 라인.

이러한 "추가" RCPT TO 라인이 어디서 나오는지 모르겠습니다. 누구든지 어떤 아이디어가 있습니까? 감사해요.

내 /usr/local/etc/ssmtp/ssmtp.conf의 내용:

[email protected]
mailhub=mail.vesterman.com:465
rewriteDomain=vesterman.com
hostname=silicon.vestertopia.net
FromLineOverride=YES
UseTLS=YES
[email protected]
AuthPass=hunter2

답변1

나는 그것을 알아 내고 고쳤습니다.

나는 ssmtp어떤 상황에서 무언가에 대한 RCPT TO 행을 추가하는지 알아내려고 소스 코드를 살펴보았습니다. 그런 다음 ssmtp호출할 때 어떤 명령줄 인수가 사용되었는지 알아내려고 했습니다 . 나는 그 호출이 다소 이상해 보이는 명령줄 인수 mail로 이루어졌음 을 발견했는데, 이는 "추가" RCPT TO 행에 해당하는 것 같았습니다.ssmtp

# ps -jdp 63097 -ww 999
USER   PID  PPID  PGID   SID JOBC STAT TT     TIME COMMAND
root 63097 62987 63097 60346    1 I     1  0:00.09 -su (bash)
root 36939 63097 36939 60346    1 S+    1  0:00.00 - mail -vs aojg [email protected]
root 38014 36939 36939 60346    1 S+    1  0:00.01 `-- sendmail send-mail /usr/local/sbin/ssmtp mailq /usr/local/sbin/ssmtp -i -v [email protected] (ssmtp)

/etc/mail/mailer.conf나는 이 파일이 "추가" RCPT TO 행과 많이 겹치기 때문에 한동안 회의적이었습니다 . 다음과 같습니다.

sendmail        /usr/local/sbin/ssmtp
send-mail       /usr/local/sbin/ssmtp
mailq           /usr/local/sbin/ssmtp
newaliases      /usr/local/sbin/ssmtp
hoststat        /usr/bin/true
purgestat       /usr/bin/true

…하지만 내가 "~처럼 보인다"라고 말할 때는 문자 그대로 놀랍게도 뜻을 내포하고 있습니다. 제가 cat이런 일이나 그런 일을 할 때의 모습은 이렇습니다 nvim. 그런데 mail첫 번째 줄 시작 부분의 "sendmail" 외에도 처음 세 줄을 통과했다는 사실이 나를 더 자세히 보게 만들었다.

비록 그것이 밝혀졌지만것 같다6개의 개별 라인처럼 실제로는 4개의 라인입니다. 처음 세 개의 의사 행은 EOL로 구분되지 않습니다. 대신 공백으로 구분됩니다(따라서 실제로는 한 줄입니다). nvim이것이 별도의 줄인 것처럼 표시되는지 아니면 단지 우연의 일치인지는 알 수 없습니다 (공백의 수는 "완벽한" 줄 바꿈을 초래하는 수와 정확히 같습니다).

그래서 .it mail를 호출하고 싶습니다. .it 에서 행을 sendmail찾습니다 . 그런 다음 해당 줄의 모든 항목(처음에 있는 "sendmail" 자체 제외)을 호출해야 하는 호출이라고 생각합니다 . 이랬어야 했는데 , 공간의 이상함으로 인해 이렇게 되어버렸다 .sendmailmailer.confsendmail/usr/local/sbin/ssmtp/usr/local/sbin/ssmtp send-mail /usr/local/sbin/ssmtp mailq /usr/local/sbin/ssmtp

즉, 실행 파일은 명령줄 인수(법적 이유로 추가된 추가 인수 포함)를 사용하여 mail호출됩니다 ./usr/local/sbin/ssmtpsend-mail /usr/local/sbin/ssmtp mailq /usr/local/sbin/ssmtp

마지막으로, sendmail4개의 시작 매개변수 각각이 전송될 이메일 주소인지 결정하고, 어떤 이유로든 각 주소에 "@vesterman.com"을 추가합니다.

mailer.conf애초에 파일이 왜 이런 상태인지에 대해서는 , 아마도 비극적인 복사-붙여넣기 사고가 발생했을 것이라고 믿습니다.

관련 정보