Shell-Script

附加用於發送郵件的文件,這些文件是 find 命令的結果集

  • July 19, 2017

通過使用find命令,我得到了多個文件。現在我想將所有這些文件添加為郵件附件。如何將這些文件作為附件添加到單個郵件中?

我想在腳本中實現它。我是否需要使用 for 循環並將文件儲存在數組變數中?

EX:我通過以下方式獲得了 3 個文件結果

find . -type f -name "sum*"

結果:

sum123.pdf
sum234.pdf
sum453.pdf

你可以這樣做mutt

mutt -a $(find . -type f -name "sum*")

如果你想做非互動式的,試試

mutt -s "Subject" -a $(find . -type f -name "sum*") -- user@cats.com < /dev/null

如果mutt沒有安裝,這裡有一個帶有mail更多工具的範例(例如mpack)!

所以它應該是這樣的

#!/bin/bash
# This needs heirloom-mailx
from="sender@example.com"
to="recipient@example.org"
subject="Some fancy title"
body="This is the body of our email"

declare -a attargs
for att in $(find . -type f -name "sum*"); do
 attargs+=( "-a"  "$att" )  
done

mail -s "$subject" -r "$from" "${attargs[@]}" "$to" <<< "$body"

對於沒有聲明的 sh 環境:

#!/bin/sh
# This needs heirloom-mailx
from="sender@example.com"
to="recipient@example.org"
subject="Some fancy title"
body="This is the body of our email"

attargs=""
for att in $(find . -type f -name "sum*"); do
 attargs="${attargs}-a $att "  
done
attargs=${attargs::-1}

mail -s "$subject" -r "$from" ${attargs[@]} "$to" <<< "$body"

引用自:https://unix.stackexchange.com/questions/138061