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


Answers:


11

假设它是二进制附件:

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

如果UUencoding只是一个文本文件,则无需打扰,例如:

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

大多数* NIX都有邮件和uuencode,因此这几乎可以在任何地方工作。


如果我希望文本文件作为附件而不在邮件正文中怎么办?
Yuval A

这取决于-我认为普通的GNU邮件无法做到这一点,因此您需要使用实际的邮件客户端;松树,笨蛋或类似的东西。您可以使用其中哪些取决于系统上已安装的系统。使用mutt,Gavin的答案(如下)会很好用。
2009年

松树很好!我可以通过命令行使用文本GUI来使用它吗?
Yuval A

我认为这是可行的。请查看staff.washington.edu/chappa/pine/info/outgoing.html了解更多信息。
RainyRat

11

使用mutt,您可以:

mutt -z -a <file> -s <subject> -- user@example.com

或者,如果您不想键入正文:

mutt -z -a <file> -s <subject> -- user@example.com < /dev/null


mutt在我的系统上不可用,无论如何,谢谢
Yuval A

我认为您会发现,这将在便捷与便携之间进行折衷。mailx是便携式的,但不一定很容易。正如RainyRat所述,我认为您将必须使用完整的MUA,并从命令行运行它。
Gavin McTaggart

2
我必须--在电子邮件地址前添加,以使这些命令起作用。
Autumnsault 2015年

实际上,需要使用破折号将电子邮件地址与文件名“-user@example.com”分开,@ DoctorMohawk是正确的。尝试将它们添加到答案的上方。
杰夫·克莱顿

2

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

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


+1-这很满足我的需求,因为它很容易且仍在积极维护中!如果您使用的是Debian系统,则只需aptitude install sendemail。请注意,该命令的安装方式sendEmail与大写字母“ E”相同。
Topher Fangio

实际上,压缩包包含一个perl脚本和几个文档。您可以下载,解压缩并运行它(只要您的系统具有perl)。不过,很高兴您喜欢它。
克林顿·布莱克莫尔

1

我无法添加评论,但是..

  • 答案将在很大程度上取决于mailx您所拥有的衍生产品(如果有)。
  • 尽管接收MUA可以毫无问题地显示文件,但是从管道uuencode技术上讲不会产生带有附件的电子邮件。查看您收到的电子邮件的来源,以了解原因。

+1为真相。我什至没有意识到有一个可以发送附件的mailx版本(我的肯定不是)。您对uuencode->邮件管道所需的手动uudecoding也很正确。
加文·麦克塔加特,2009年


1

快速的Google打开了此页面该页面描述了使用各种应用程序附加文件的各种方法。几个比较普遍的-

  • uuenc8de进行内联“附加”。

  • 元邮件 -f file-to-attach -m mime-type

  • 压缩包 -c mime-type file-to-attach

  • 杂种 -a file-to-attach

  • 榆树 -A file-to-attach

此外,它还具有指向几个 Shell脚本和一个Perl脚本的链接,以制作和发送消息,您可能会更喜欢。


1
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt my@email.com

邮件:非法选项
-a

1
请注意,这是mailx功能,请确保已安装特定的软件包
niXar

0

几年前,我写了一个shell脚本来做到这一点。它叫做binmail.sh。它使用了base64编码器(可以在google中找到许多源代码)并根据RFC1521构建了附件。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.