如何从命令行发送电子邮件与收件人制表符完成和适当的文件附件?

一年前,我尝试了几个不同的电子邮件发件人,因为我想简化从命令行发送电子邮件。 有几个工具,我试过了(我不记得了):

  • sendmail
  • mail
  • xmail
  • ssmtp
  • uuencode
  • 我使用mail在networking上find了一些处理附件的MIME脚本。
  • echo body text | mutt -s subject -a /etc/resolv.conf [other files] -- [email protected]

附加文件的问题很困难,因为

  • 编码问题
  • MIMEtypes的二进制文件
  • 附加多个文件失败(它们之间没有明确的界限)
  • 发送文本文件作为附件,而不是在电子邮件正文

但最终它与mutt (使用上面的命令)一起工作。 我本来希望没有调用一个大程序的方法,但是我很好。

在某个时候,我停止使用它,因为我总是不得不手动input电子邮件地址,我从来不记得它们。

为了进一步方便命令行发送,

有没有简单的方法来启用电子邮件地址的标签填写?

我想有一些手动的工作,因为我没有在网上find任何东西。 build立电子邮件索引(从Gmail导出的CVS)似乎很容易,但如果John Jerry使用[email protected]作为他的电子邮件地址呢? 这将是必要的完成

  • Jo <tab>
  • Je <tab>
  • <tab>
  • jj <tab>

这必须以某种方式喂入readline工具 – 我不知道这是否困难,但是我正在寻找一个简单的方法,如果有的话!

你可以用bash-completion包和一些自定义脚本来做到这一点。 Mutt完成是默认启用的。

请参阅以下教程以扩展bash完成function:

http://www.linuxjournal.com/content/more-using-bash-complete-command

http://www.debian-administration.org/articles/316

http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_2