我目前有一个脚本:
cat $body | uuencode $attachment $attachment | sendmail $sender -t
我应该调整什么以便$附件可以是多个附件?我想出了下面的内容,但看起来不正确吗?
cat $body |
for i in $attachments
do
uuencode $i $i
done
| sendmail $sender -t
答案 0 :(得分:0)
通常,您不希望在参数中存储文件名列表。默认情况下IFS
,文件名中嵌入的空格会引发问题。相反,声明一个包含文件的数组
a=(file1 file2 file3 file4)
(for file in "${a[@]}"; do uuencode "$file" "$(basename "$file")"; done) |
sendmail $sender -t
答案 1 :(得分:0)
尝试以下脚本:
# specify list of email recipients
recipients=...
# specify envelope sender address
sender=...
(
cat $body
for i in $attachments
do
uuencode $i $i
done
) | sendmail -f$sender -i -- $recipients
$body
文件必须包含邮件标题(例如Subject:
),并由邮件正文中的空行分隔答案 2 :(得分:0)
FILES =“/ rollovers / DailyCadRpt。* / rollovers / DailyFireRpt。*”
(对于$ FILES中的f;执行uuencode“$ f”“$ f”;已完成)| mail -s“Subject”recipient_email@domain.com
以上在AIX 6.1中用于通配符。但是,您必须使用10-pad星号。数字8上方的星号在AIX中不起作用。此外,这没有任何正文。但这与其他例子一样。您可以使用空格作为分隔符添加更多文件,如我的示例所示。此外,您不能将Daily *与星号一起使用。 AIX就是不会这样做。星号必须在文件名中的句点之后出现。我们的报告将日期添加到报告名称中,以句点分隔。它保留了我们的归档命名模式,并且每天都可以抓取它而无需特定的文件名。