Uuencode 在电子邮件正文中显示文件内容,而不是在附件中附加文件

Vin*_*eet 2 command-line email mailx

我想在电子邮件中以附件形式发送一个简单的文本文件。发送电子邮件时,附件丢失,而是在电子邮件正文中显示附件的内容。需要建议修复它请。

这是我的输入:

bash-4.1$ cat test.txt  
HelloWorld !  

bash-4.1$ uuencode test.txt test_attachment.txt|mailx -s 'testing' mail@mail.com  
Run Code Online (Sandbox Code Playgroud)

这是电子邮件上的输出:

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

小智 7

您可能对uuendcode ... | mailx ...命令应该做什么有一些不正确的期望。

在 uuencode 设计用于运行的世界中,没有附件这样的东西,因为 MIME 还不存在。收到带有 uuencoded 内容的消息的人应该会看到这样的消息:

From: Alice <alice@example.edu>
To: Bob <bob@example.com>
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
Run Code Online (Sandbox Code Playgroud)

接收者应该认识到来自beginto的行end是一个 uuencoded 文件,并将这些行(或者可能是整个消息)通过管道传输到uudecode,然后在当前目录中查找输出文件。

这很像解码 MIME 附件,但更大的部分发生在用户的大脑中。

一些现代邮件阅读器可能会自动识别 uuencoded 内容,并使用单个用户界面来显示 uuencoded 和 MIME 附加文件。我不希望任何经典的 unix 邮件阅读器会这样做,因为它歪曲了实际发送的内容,即纯文本(非 MIME)消息。