MAILX는 제목과 본문이 비어 있는 이메일을 보냅니다.

MAILX는 제목과 본문이 비어 있는 이메일을 보냅니다.

다음 명령은 제목과 본문이 비어 있는 이메일 보내기를 시작합니다.

mailx -s "Daily Extract" $RESULT_EMAIL < $LOG

$RESULT_EMAIL- 확인된 배포 목록이 포함되어 있습니다.

$LOG- 확인된 이메일 내용이 포함되어 있습니다.

이제 이메일이 제목줄도 없이 비어 있는 이유를 아시나요?

이는 정상적인 패치가 적용된 PROD 서버에 있습니다. 아마도 Java 버전일까요? Red Hat 서버 버전? mailx는 XXX 버전에서 작동하지 않나요?

$LOG- 이메일의 텍스트를 포함합니다. 좋다...This is the body of the Email. The email verifies that you have subscribed to us...

새 메시지는 서버의 명령줄을 사용하고 mailx 기능은 이메일을 보냅니다.

쉘 스크립트는 Atomic Scheduler(UC4)에서 실행됩니다. 따라서 UC4는 오전 6시에 쉘 스크립트를 실행할 계획입니다. mailx 명령은 이 쉘 스크립트 내에 있습니다.

나는 귀하가 요청한 정보를 얻기 위해 노력할 것입니다.

cat /etc/os-release

[ CAT 명령의 결과는 여기에서 확인할 수 있습니다.]

lsb_release -a
Command not found

답변1

명령 다음에 문자열을 실행하면 <쉘은 해당 문자열을 파일 이름으로 사용하고 해당 파일의 내용은 명령의 표준 입력 스트림으로 리디렉션됩니다.

즉, 실행할 때

mailx -s 'Daily Extract' "$RESULT_EMAIL" <"$LOG"

...그러면 변수에 있는 모든 것이 LOG다음과 같이 사용됩니다.파일 이름. 파일이 없으면 메시지 본문 없이 메시지가 전송됩니다(명령을 수동으로 실행하는 경우 터미널에 "해당 파일 또는 디렉터리 없음" 오류 메시지도 표시되어야 함).

그러나 그 안에 들어 있는 내용은 LOG보내려는 메시지의 텍스트인 것 같습니다. 이 경우 이러한 리디렉션을 사용할 수 없으며 변수 값이 $LOG표준 입력 스트림으로 전달되도록 해야 합니다 mailx.

우리는 이것을 다음과 같이 사용할 수 있습니다 printf:

printf '%s\n' "$LOG" | mailx -s 'Daily Extract' "$RESULT_EMAIL"

또는 다음 문자열을 사용하십시오(일부 셸에서 지원됨).

mailx -s 'Daily Extract' "$RESULT_EMAIL" <<<"$LOG"

또는 여기에 설명된 리디렉션을 사용하세요.

mailx -s 'Daily Extract' "$RESULT_EMAIL" <<END_MESSAGE
$LOG
END_MESSAGE

관련 정보