【问题标题】:Sending the mail using mutt command使用 mutt 命令发送邮件
【发布时间】:2014-03-27 17:21:17
【问题描述】:

我有一个要求,我需要发送两个文件 A 和 B 。文件 A 的内容应显示为邮件的内联或正文,文件 B 应显示为附件。

是否可以使用 mutt 进行多个附件?

命令

 echo "Hello everyone " | mutt -s 'My mail ' abc@gmail.com -a myFile.txt 

正在写 Hello 大家作为邮件的正文和 myFile.txt 作为附件(内联)。

我的文件 A 和 B 都是动态生成的,所以我不能有 echo 语句。

【问题讨论】:

  • 当您说“文件 A 和 B 是动态生成的”时,这是否意味着您在磁盘上的任何地方都没有真正的文件?
  • 这些是由 shell 脚本生成的。 shell 脚本调用一些 plsql 过程来生成报告文件(文件 A 和 B)。

标签: shell mutt


【解决方案1】:

其实很简单:

mutt -s 'My mail ' abc@gmail.com -a report1.txt < report2.txt

如果您有两个脚本来创建报告,您可以使用管道(即不会在磁盘上创建文件):

script2 | mutt -s 'My mail ' abc@gmail.com -a <(script1)

【讨论】:

  • 只是一个问题,当您管道时,您实际上不创建文件吗?这就是为什么标准输入、标准输出和标准错误被称为文件描述符
  • @miraunpajaro 不,你没有。它们被称为文件描述符,因为它们指的是可以用作文件的东西,它可能实际文件。在这种情况下,当 mutt 尝试读取数据时,script2 会生成它们。当 mutt 处理数据时,script2 被暂停。
【解决方案2】:
cat A | mutt -s 'My mail' abc@gmail.com -a B

如果 shell 脚本将文件 A 的内容打印到标准输出,像这样:

script >A

然后你可以使用tee 来打印到文件 A 和到 mutt 的管道中:

script | tee A | mutt -s 'My mail' abc@gmail.com -a B

【讨论】:

    猜你喜欢
    • 2013-11-03
    • 1970-01-01
    • 2014-08-14
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2016-05-24
    • 2012-08-25
    相关资源
    最近更新 更多