通过 mailx 命令将多个文件作为邮件发送

通过 mailx 命令将多个文件作为邮件发送

我的 .txt 文件中有 3 个文件名

我必须读取所有文件名并将它们作为邮件附件发送。

例子:

test.txt - (文件名)

-query1.dat

-query2.dat

-query3.dat

我必须读取 test.txt 文件并获取所有这些 query*.dat 文件,并使用 mailx 命令发送包含所有这些文件作为附件的邮件。

我有这个代码:

while read line
do

    mailx -a ${line} -s "files" ${mail_from} << EOM

    Hi, Sent files

    EOM

done<test.txt

它通过单独的邮件单独发送每个文件。

我需要通过一封邮件发送所有这些文件。

怎么做?

答案1

您可以-a file在同一次调用中附加多个mailx

while read pj ; do
    attach+=( -a "$pj" )
done < test.txt

mailx "${attach[@]}" -s "files" ${mail_from} << EOM

    Hi, Sent files

EOM
  • attach+=( -a "$pj")向数组追加 2 个元素
  • "${attach[@]}"将数组的每个元素展开为单独的值,而不是用值中的空格分隔。

相关内容