通过电子邮件发送文件

作者:Marjorie Richardson

通常,我们希望通过电子邮件将文件发送给同事和朋友。根据您要发送的文件类型,有一个Linux命令可以简化此过程。

纯文本文件

shell 归档文件命令 shar 非常有用,它可以将纯文本文件合并为一个文件,然后可以通过电子邮件发送。shar 在文件本身中写入用于解包输出文件的 shell 命令,以及使用 MD5 校验和验证内容的代码。 它比归档命令 tar 更容易使用,即使是专家也可能会被 tar 复杂的特性绊倒。 您只需键入以下内容即可运行 shar:

shar input_filenames > filename.shar

它将获取所有输入文件并将它们写入输出文件,并在写入过程中嵌入解包命令。 与 shar 输出文件一起使用的扩展名通常为 .shar。 要解包文件,您无需知道嵌入的命令或自己从文件中检索它们。 而是使用命令 sh。 uuencode 的第一个参数是输入文件名;第二个参数是要放入输出文件标头中的名称。 我们将对两者使用相同的名称。 键入

sh filename.shar
sh 命令将通过读取文件、提取命令并执行它们来解包档案,从而为您完成这项工作。

允许在命名 shar 输入文件时使用通配符,因此您可以轻松地打包一个或多个目录中的所有文件。 请记住,这些文件必须全部是纯文本——没有二进制文件。

shar 命令的目的是与 tar 非常相似。 但是,该命令及其格式更容易记住,并且由于输出是纯文本而不是二进制文件,因此无需对其进行编码即可将其作为电子邮件发送。

二进制文件和图形

非纯文本文件(例如二进制文件和图形)在通过电子邮件发送之前必须进行编码。 首先,使用 tar 打包和压缩您的文件,tar 会输出一个二进制文件。 我们将不在此处详细介绍 tar,因为它以前已经讨论过:请参阅 Yusuf Nagree 的“Linux 的 Tar 和 Taper”,Linux Journal,1996 年 2 月 (https://linuxjournal.cn/lj-issues/issue22/1216.html)。 一个简单的命令来打包和压缩当前目录中的所有文件看起来像这样

tar -cvzf tar_files.tgz *

现在,可以使用命令 uuencode 对 tar 文件进行编码,方法是键入

uuencode tar_file.tgz tar_file.tgz > mail_file
现在可以将输出文件放入电子邮件中并发送到网络中。

收件人可以保存电子邮件(可能另存为 mail.save)并轻松解码文件——甚至无需删除邮件标头。 只需使用命令 uudecode,方法是键入

uudecode mail.save

uudecode 将按照其名称所说的那样:解码邮件文件,在当前目录中留下一个名为 tar_file.tgz 的文件。 要解包 tar 文件,请键入

tar -xvzf tar_file.tgz
可以以相同的方式编码和解码单个图形文件,跳过 tar 步骤,因为不需要归档文件。
结论

无论您拥有哪种类型的文件,使用这些简单的 Linux 命令将它们发送给其他人都不是一件难事。

Sending Files by E-mail
Marjorie RichardsonLinux Journal 的主编。 她多年来一直是一名程序员,并且非常喜欢她作为 Linux 倡导者的角色。
加载 Disqus 评论