![在 bash 脚本中,有哪些比 uuencode 更好的编码电子邮件附件的选项?](https://linux22.com/image/115313/%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%EF%BC%8C%E6%9C%89%E5%93%AA%E4%BA%9B%E6%AF%94%20uuencode%20%E6%9B%B4%E5%A5%BD%E7%9A%84%E7%BC%96%E7%A0%81%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E9%99%84%E4%BB%B6%E7%9A%84%E9%80%89%E9%A1%B9%EF%BC%9F.png)
我正在参考我原来的帖子其中我问了一个关于与$2 $3
等相关的参数放置的问题,最终${@:2}
.有人提到有更好的方法来编码电子邮件附件。
注意,我曾经uname -or
弄清楚2.6.32-400.26.3.el5uek GNU/Linux
。
我在 bash 脚本中使用该命令将文件附加到电子邮件中,并将其添加到其他几个脚本中。然而,我们的一些机器甚至不支持uuencode
,那么有什么比 uuencode 更好的选项来将文件附加到电子邮件呢?
答案1
我更喜欢使用 mpack 以 MIME 形式发送附件
如:
mpack -s "message" file [email protected]
姓名
mpack - 以 MIME 格式打包文件
mpack [ -s 主题 ] [ -d 描述文件 ] [ -m 最大大小 ] [ -c 内容类型 ] 文件地址 ... mpack [ -s 主题 ] [ -d 描述文件 ] [ -m 最大大小 ] [ -c 内容类型] -o 输出文件 mpack [ -s 主题 ] [ -d 描述文件 ] [ -m 最大大小 ] [ -c 内容类型 ] -n 新闻组文件 描述
mpack 程序将指定文件编码为一个或多个 MIME 消息。生成的消息将邮寄给一个或多个收件人、写入指定文件或一组文件,或者发布到一组新闻组。
答案2
您知道,我发现以下内容对于文本或二进制文件都适用:
mailx -s SUBJECT -a FILE1 -a FILE2 ... USERNAME
它基本上会自动进行 MIME 编码,甚至 M$ Outlook 也会对这样的消息执行正确的操作。
答案3
如果缺少uuencode
,这个perl
hack 会做几乎同样的事情。
信用去往Perl Monks 网站
perl -ple"BEGIN{ $/=\45} $_ = pack 'u', $_" file
答案4
您可以使用 7z 或 zip 或 tar.wz 或类似命令来获取压缩文件列表。
然后可以将压缩的文件列表转换为十六进制。使用 od hd 或 xxd:
$ xxd -p compressedfile.7z > ToBeMailedFile
发送电子邮件附件中的文件。
转换回文件:
$ xxd -p -r ToBeMailedFile > compressedfile.7z
将文件展开到文件列表。
当 HEX 通过所有允许的 Web 字符限制时,该文件将通过。
由于文件列表在发送之前被压缩,因此大小会增加。
压缩文件也可以被加密。可以使用几种不同的工具来处理数据。只有HEX到BIN的转换需要xxd。所以,工具的自由。