1

Mutt (Slackware 13.1 の msmtp) で最初のステップを実行しています。

私はすでに次のような添付ファイル付きのメールを送信できます:

cat mail.txt | mutt -a "/date.log" -a "/report.sh" -s "subject of message" -- myself@gmail.com

別のファイルに添付するファイルを定義してから、Mutt にそれを読み取るように指示したいと思います。次のようにします。

mutt -? listoffilestoattach.txt

出来ますか?または、同様のアプローチがありますか?

4

1 に答える 1

1

配列にファイル名のリストをかなり簡単に入力してから、それを の引数として使用できます-a

while IFS= read -r attachment; do
    attachments+=( "$attachment" )
done < listoffilestoattach.txt
for f in ../*.log; do
    attachments+=("$f")
done

mutt -s "subject of message" -a "${attachments[@]}" -- myself@gmail.com < mail.txt

bash4 以降を使用している場合は、whileループを (少し) よりインタラクティブなreadarrayコマンドに置き換えることができます。

readarray -t attachments < listoffilestoattach.txt

場合のように、オプションmuttごとに 1 つのファイル-aが必要な場合は、少し異なるものが必要になります。

while IFS= read -r attachment; do
    attachments+=( -a "$attachment" )
done < listoffilestoattach.txt
for f in ../*.log; do
    attachments+=( -a "$f")
done

mutt -s "subject of message" "${attachments[@]}" -- myself@gmail.com < mail.txt

を使用してreadarray、試してください

readarray -t attachments < listoffilestoattach.txt
attachments+=( ../*.log )
for a in "${attachements[@]}"; do
    attach_args+=(-a "$a")
done
mutt -s "subject of message" "${attach_args[@]}" -- myself@gmail.com < mail.txt
于 2015-11-18T14:41:21.880 に答える