在单邮件unix中使用多个附件的mutt命令



我的要求是将所有.csv文件附加到一个文件夹中,并在一封邮件中发送。

以下是已经尝试过的,

mutt -s "subject" -a *.csv -- abc@gmail.com < subject.txt

上面的命令不起作用(它不能识别多个文件)并抛出错误

Error sending message, child exited 67 (User unknown.).
Could not send the message.

然后我尝试使用多个-a选项,如下所示,

mutt -s "subject" -a aaa.csv -a bbb.csv -- abc@gmail.com < subject.txt

这符合预期但这对于例如100个文件来说是不可行的。我应该可以将它与文件掩码一起使用(就像*.csv一样,获取所有csv文件)。有没有什么方法可以像*.csv一样在单个命令中使用?

感谢

Mutt不支持这样的语法,但这并不意味着它是不可能的。您只需要构建mutt命令。

mutt -s "subject" $( printf -- '-a %q ' *.csv ) ...

$( ... )中的命令产生如下内容:

-a aaa.csv -a bbb.csv -a ...

以下是使用单个命令发送多个文件的示例-

mutt -s "Subject" -i "Mail_body text" email_id@abc.com -c email_cc_id@abc.com -a attachment1.pdf -a attachment2.pdf 

在命令行的末尾,使用-a作为附件。

一些linux系统有附件大小限制。大多数情况下,它支持较小的尺寸。

我得到反斜杠(\)附加

Daily_Batch_Status{20131003}.PDF
Daily_System_Monitoring{20131003}.PDF
printf -- '-a %q ' *.PDF
-a Daily_Batch_Status  {20131003  }.PDF -a Daily_System_Monitoring  {20131003  }.PDF
#!/bin/bash
from="me@address.com"
to="target@address.com"
subject="pdfs $(date +%B) $(date +%Y)"
body="You can find the pdfs from  $(date +%B) $(date +%Y)"
# here comes the attachments 
mutt -s "$subject" $( printf -- ' -a %q' $PWD/*.pdf ) -- $to <<EOF 
 Dear Mr and Ms,

 $(echo $body)
 $(cat ~/.signature)
 EOF

但它不适用于文件名中的转义字符,如"\[5\]";它可以在MacO中出现。我创建了一个脚本,并在一个文件夹中收集所需的PDF,然后从那个位置运行脚本。所以每月都会发送报告。。。有多少pdf(数量可以变化)并不重要,但也不应该有空白。

最新更新