在 bash 脚本中,有哪些比 uuencode 更好的编码电子邮件附件的选项?

在 bash 脚本中,有哪些比 uuencode 更好的编码电子邮件附件的选项?

我正在参考我原来的帖子其中我问了一个关于与$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,这个perlhack 会做几乎同样的事情。

信用去往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。所以,工具的自由。

相关内容