Linux의 mailx 명령

Linux의 mailx 명령

-m아래 코드는 배열 변수(예: DISCARDED_FILE_NAME)에서 메일과 첨부 파일을 보내기 위해 Unix 서버에서 제대로 작동하지만 Linux가 메일 명령을 지원하지 않기 때문에 동일한 코드가 Linux 서버에서 작동하지 않습니다 -a. 여전히 작동하지 않습니다.

이 코드는 Unix 서버에서 문제 없이 잘 실행됩니다.

set -A DISCARDED_FILES $2
DISCARDED_FILE_NAME="DISCARDED"
echo "MRP_NAME" ${MRP_NAME}
RECEIVER="[email protected]"
echo "RECEIVER" ${RECEIVER}
SUBJECT="Error on ${MRP_NAME}"
BODY="Errore nell' elaborazione dell' ${MRP_NAME} Controllare file ${DISCARDED_FILE_NAME}"
echo "${BODY}"
(echo "$BODY\n";
for file in ${DISCARDED_FILES[@]}
do
uuencode $file `echo $file | cut -d'/' -f9`
done ) | mailx -m -s "${SUBJECT}" ${RECEIVER} 
echo mail sent

Linux 서버에서 실행되도록 수정했지만 다음과 같이 실패했습니다.

이 코드는 Linux 서버에서는 작동하지 않습니다.

MRP_NAME=$1
set -A DISCARDED_FILES $2
DISCARDED_FILE_NAME="DISCARDED"
echo "MRP_NAME" ${MRP_NAME}
RECEIVER="[email protected]"
echo "RECEIVER" ${RECEIVER}
SUBJECT="Error on ${MRP_NAME}"
BODY="Errore nell' elaborazione dell' ${MRP_NAME} Controllare file ${DISCARDED_FILE_NAME}"
echo "${BODY}"
(echo "$BODY\n";
for file in ${DISCARDED_FILES[@]}
do
uuencode $file `echo $file | cut -d'/' -f9`
DISCARDED_FILES+=( "-a"  $file)  
done ) | mailx "${DISCARDED_FILES[@]}" -s "${SUBJECT}" ${RECEIVER} 
echo mail sent

Linux 서버에서 위 코드를 실행하면 첨부파일 없이 메일(본문)에 다음과 같은 텍스트가 옵니다.

Errore nell' elaborazione dell'  Controllare file DISCARDED\n
begin 660 shell.txt
3=F%R=6X@:70@:7,@:6X@8F]D>0
end
begin 660 MoneticalBatchExtlogs.txt
M9&-T97)I;#`Q.B]A<'`O<W!E+TUO;F5T:6-A0F%T8VA%>'0O;&]G+T)312,@
M<V@@36]N971I8V%?3&]A9%]$871A7TU24#`Q+G-H"DU24%].04U%.B`M+2TM
M/B!-4E`P,0I-4E!?0TQ!4U-?3D%-13H@+2TM+3X@:70N<V5L;&$N;6]N971I
M8V%B871C:&5X="YA<'`N35)0,#%!<'`*0U123%]&24Q%3D%-13H@+2TM+3X@
M36]N971I8V%?3&]A9%]$871A7TU24#`Q+F-T;`I,3T=?1DE,13H@+2TM+3X@
M+V%P<"]S<&4O36]N971I8V%"871C:$5X="]L;V<O36]N971I8V%?3&]A9%]$
M871A7TU24#`Q7S$Q,#DR,#(P7S$U,#<Q-RYL;V<*6S$U.C`W.C$W72!-;VYE
M=&EC84)A=&-H17AT($U24#`Q('-C<FEP="!S=&%R="XN+@I;,34Z,#<Z,3==
M($UO;F5T:6-A0F%T8VA%>'0@35)0,#$@<V-R:7!T('-T87)T+BXN"ELQ-3HP
M-SHQ-UT@4W1A<G0@9V5N97)A=&EN9R!S97%U96YC92!F;W(@97AC97!T:6]N
M("XN+@I"051#2%]315%514Y#15])1"`](#(Q.#`X"ELQ-3HP-SHQ-UT@16YD
M(&=E;F5R871I;F<@<V5Q=65N8V4@9F]R(&5X8V5P=&EO;B`N+BX*6S$U.C`W
M.C$W72!3=&%R="!I;G-E<G1I;F<@8F%T8V@@9&5T86EL<RXN+@I;,34Z,#<Z

답변1

귀하가 사용 uuencode하고 생성한 메시지 본문은 정확하지만, uuencoded 첨부 본문을 이해하는 메일 에이전트에 의해서만 디코딩될 수 있습니다.

기술적으로 말하자면,POSIX더 이상 사용되지 않는다는 것은 아니지만 uuencodeMIME은 uuencode실제로 몇 년 전에 대체되었습니다. 당신은 그것을 사용할 수 있습니다mpack현대적인 MIME 호환 방식으로 이메일 메시지에 하나 이상의 첨부 파일을 추가합니다.

그런데 첫 번째로 포함된 텍스트 파일이 정상적으로 디코딩됩니다.

uudecode -o - </tmp/610367.txt ; echo
varun it is in body

uuencode사양에서는 메시지당 여러 파일을 처리하라고 명시하지 않고 일부 클라이언트에서는 하나만 기대하기 때문에 두 번째 것은 무시될 수 있습니다 . (반면 운이 좋을 수도 있습니다. 가능하면 MIME을 사용하는 것이 좋습니다.)

관련 정보