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 还不存在。收到包含 uuencoded 内容的消息的人应该会看到如下内容:

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到 的行end是一个 uuencoded 文件,并将这些行(或者可能是整个消息)通过管道传输到uudecode,然后在当前目录中查找输出文件。

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

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

答案2

某些mailx实用程序的实现无法发送附件。其他实用程序(例如 Linux 上的实用程序)有一个-A以文件名作为其值的标志。

因此,如果您使用的是 Linux,则需要在使用之前将 uuencoded 数据写入文件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 | uuencode a.gz a.gz | mail -s“从linux测试uuencode”[电子邮件受保护]

uuencode a.gz a.gz | 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“主题”[电子邮件受保护]

答案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

相关内容