我的要求是将所有.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(数量可以变化)并不重要,但也不应该有空白。