如何通过 mailx 将标准输出作为附件发送?

How do I send stdout as an attachment via mailx?

我想将多个命令的输出作为附件发送,对于现代系统和 mailx,我更愿意跳过 uuencode 并简单地使用 -a 开关,所有内联。但无论我尝试什么组合,我都无法完成这项工作。

当然,它可以先将输出重定向到文本文件并发送这些文件,但这不是我想要的。

( ls -l ~ | uuencode att0.txt; ls -l /tmp | uuencode att1.txt) | mailx -s "ls" someone@somewhere.org

这曾经适用于较旧的环境,但它已经过时了,现代实现不能正确理解 uuencode,更喜欢 MIME,并将其转换为正文。

固定:

( echo "Subject: ls"; ls -l ~ | uuencode att0.txt; ls -l /tmp | uuencode att1.txt) | sendmail someone@somewhere.org

丑陋,但有效。你能做什么。