我正在与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
有可能吗?或者有类似的方法?
答案 0 :(得分:0)
您可以非常轻松地使用文件名列表填充数组,然后将其用作-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
如果您使用bash
4或更高版本,则可以使用(稍微)更具交互性的while
命令替换readarray
循环:
readarray -t attachments < listoffilestoattach.txt
如果情况如此,mutt
每个-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