通过命令行在* nix电子邮件文件最简单的方法?

什么是最简单的,最好是最便携的命令我可以使用电子邮件作为附件一个单一的文件* nix壳?

假设这是一个二进制附件:

uuencode [文件名] [文件名] | mail -s [主题] [收件人地址]

如果只是一个文本文件,你不需要打扰UUencoding,例如:

mail -s [主题] [收件人地址] <[文件名]

大多数* NIX有邮件和uuencode,所以这应该在几乎任何地方工作。

使用mutt,你可以:

mutt -z -a <file> -s <subject> -- [email protected]

或者,如果您不想input正文:

mutt -z -a <file> -s <subject> -- [email protected] < /dev/null

“ sendEmail是一个轻量级的命令行SMTP电子邮件客户端,如果您需要从命令行发送电子邮件,这个免费程序是完美的:易于使用和function丰富,它被devise用于bash脚本,batch file,Perl程序和网站,但是适应性很强,可能会满足你的要求,SendEmail是用Perl编写的,它的独特之处在于它不需要模块,它有一组直观而灵活的命令行选项,非常容易学习和使用[支持的平台:Linux,BSD,OS X,Windows 98,Windows NT,Windows 2000和Windows XP]“

我以前用过它,真的很喜欢它。 您可以使用-a选项附加文件。

我不能添加评论,但..

  • 这个问题的答案将非常依赖于你所提供的mailx派生(如果有的话)。
  • 尽pipe接收到的MUA文件应该没有任何问题, uuencodepipe道在技术上不会产生带有附件的邮件。 看看你收到的电子邮件的来源,看看为什么。

如果您想要绝对的便携性,您可以通过端口25远程login到邮件服务器,并直接发出SMTP命令。 他们不是很难,而且应该是非常可写的。

快速的谷歌翻开了这个页面 ,它描述了使用各种应用程序附加文件的各种方法。 一些更普遍的 –

  • uuenc8de做一个内联“附件”。

  • metamail -f file-to-attach -m mime-type

  • mpack -c mime-type file-to-attach

  • mutt -a file-to-attach

  • Elm -A file-to-attach

此外,它还链接到一些 shell脚本和一个Perl脚本来编写和发送消息,这可能更符合您的喜好。

几年前,我写了一个shell脚本,就是这样做的。 它被称为binmail.sh。 它使用了一个base64编码器(许多源代码可以在谷歌上find),并根据RFC1521build立了附件。

或者,如果你有python可用,它将只需要几行,如在这里列出: 在python发送附件

 echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt [email protected]