Uuencode는 첨부 파일에 파일을 첨부하는 대신 이메일 본문에 파일 내용을 표시합니다.

Uuencode는 첨부 파일에 파일을 첨부하는 대신 이메일 본문에 파일 내용을 표시합니다.

간단한 텍스트 파일을 이메일에 첨부하여 보내고 싶습니다. 이메일을 보낼 때 첨부 파일이 누락되고 첨부 파일 내용이 이메일 본문에 표시됩니다. 고치려면 조언이 필요합니다.

이것은 내 입력입니다.

bash-4.1$ cat test.txt  
HelloWorld !  

bash-4.1$ uuencode test.txt test_attachment.txt|mailx -s 'testing' [email protected]  

이메일의 결과는 다음과 같습니다.

begin 664 test_attachment.txt
/2&5L;&]7;W)L9"`A(`H*
`
end

답변1

uuendcode ... | mailx ...이 명령이 수행해야 하는 작업에 대해 잘못된 기대가 있을 수 있습니다 .

uuencode가 작동하도록 설계된 세계에는 MIME이 아직 존재하지 않았기 때문에 첨부 파일과 같은 것이 없었습니다. uuencode된 콘텐츠가 포함된 메시지를 받은 사람은 다음과 같은 내용을 보게 됩니다.

From: Alice <[email protected]>
To: Bob <[email protected]>
Subject: Those files you requested

Here you go:

begin 644 something.tar.Z
M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1`BC(@P;%0%8C'$#H\:*'#U:'%EQ
M1@T`,63<F!&CQHP;,&3,T!@#QLJ9(&!,W,FSI\^?`.K,H1-&#@@0`-*02?.&
M#E"&2IDZ?4JUJM6K6+-JE9CE31T08<;0J1.&#9L\(,K@H2,G+)TR9$#009-F
MS@\%6_/JW<NWK]^_@`,+'DRXL.'#B!,K7LRXL>/'D"-+GDRYLN7+F#-KWLRY
ML^?/H$.+'DVZM.G3J%.K7LVZM>O7L&/+GDV[MNW;N'/KWLV[M^_?P(,+'TZ\
JN/'CR),K7\Z\N?/GT*-+GTZ]NO7KV+-KW\Z]N_?OX,.+'T^^O/GSZ',#
`
end

-- 
Alice

수신자는 begin에서 까지의 줄이 enduuencoded 파일임을 인식하고 해당 줄(또는 전체 메시지)을 파이프로 연결한 uudecode다음 현재 디렉터리에서 출력 파일을 찾아야 합니다.

이는 MIME 첨부 파일을 디코딩하는 것과 매우 비슷하지만 더 큰 부분이 사용자의 두뇌에서 발생합니다.

일부 최신 메일 리더는 uuencoded 콘텐츠를 자동으로 인식하고 단일 사용자 인터페이스를 사용하여 uuencoded 및 MIME 첨부 파일을 렌더링할 수 있습니다. 나는 어떤 전통적인 유닉스 메일 리더도 이런 일을 할 것이라고 기대하지 않습니다. 이는 실제로 전송된 내용, 즉 일반 텍스트(MIME이 아닌) 메시지를 잘못 나타내기 때문입니다.

답변2

일부 mailx유틸리티 구현에서는 첨부 파일을 보내지 못합니다. Linux의 유틸리티와 같은 다른 유틸리티에는 -A파일 이름을 값으로 사용하는 플래그가 있습니다.

따라서 Linux를 사용하는 경우 다음을 사용하기 전에 데이터를 파일로 uuencode해야 합니다 mailx.

$ uuencode test.txt test_attachment.txt >file.uue
$ mailx -A file.uue -s "testing" [email protected] </dev/null

[email protected]의 빈 본문과 첨부 파일이 포함된 이메일이 에 전송됩니다 file.uue.

답변3

거의 2년이 지났는데... Linux에서는 uuencode나 메일이 망가지는 것 같습니다. 아니면 제대로 작동하지만 Outlook이 손상되었을 수도 있습니다. 누가 알아?

uuencode a.gz a.gz | uuencode a.gz a.gz | mail -s "리눅스에서 uuencode 테스트"[이메일 보호됨]

uuencode a.gz a.gz | uuencode a.gz a.gz | mail -s "aix에서 uuencode 테스트"[이메일 보호됨]

Linux에서 전송된 Outlook은 인라인 uuencode 코드를 표시합니다. AIX에서 전송된 Outlook에서는 이를 첨부 파일로 표시합니다. 동일한 명령, 동일한 메일 릴레이, 다른 운영 체제, 다른 결과. 아, 어쩌면 sendmail(aix)과 postfix(linux)가 있을까요? 어쨌든 손상 위치에 대해 스스로 결론을 내리시기 바랍니다.

아, 그리고 실제 답변을 드리자면... mailx -a a.gz -s "subject"[이메일 보호됨]

답변4

echo "\
Subject: My Email Subject at `date \"+%m/%d/%Y %r UTC\"`
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="^A^A^A^A^A"
Content-Transfer-Encoding: 7bit

--^A^A^A^A^A
Content-Type: text/plain; charset=US-ASCII; name="BDY.TXT"
Content-Disposition: inline; filename="BDY.TXT"
Content-Transfer-Encoding: 7bit

My Email Subject at `date \"+%m/%d/%Y %r UTC\"`

--^A^A^A^A^A
Content-Type: text/plain; charset=US-ASCII; name="ZIP_FILE"
Content-Disposition: attachment; filename="ZIP_FILE"
Content-Transfer-Encoding: 7bit

" > /tmp/ZIP_FILE

cat /tmp/MySourceZipFile >> /tmp/ZIP_FILE
echo "
--^A^A^A^A^A--" >> /tmp/ZIP_FILE


/usr/sbin/sendmail "[email protected]" < /tmp/ZIP_FILE

관련 정보