我创建了一个监视文件夹的bash脚本,当你复制文件时,它会自动发送到一个特定的地址。
现在假设文件命名如下:
red.zip green.zip
如何将文件发送到地址:
red.zip to red@gmail.com
green.zip to green@gmail.com
或者更好,你可以通过阅读电子邮件地址所在的txt文件来做到: 例子;
rosso.zip>用red@gmail.com red1 @gmail.com red2@gmail.com
读取文件red.txt非常感谢
答案 0 :(得分:1)
假设您可以实际安装mutt
,您可以使用以下脚本作为开头:
#! /bin/bash
mail_body_file="mailbody.txt"
mail_address_file_extension=".txt"
for fullname in *.zip; do
filename="${fullname%.*}"
address_file=$filename$mail_address_file_extension
if [ -f $address_file ] ; then
echo "Address file found for ZIP $fullname"
recipients=$(cat $address_file)
echo "Sending mail to recipients $recipients..."
mutt -a $fullname -- -s "Attachment $fullname" "$recipients" < $mail_body_file
sleep 10
echo "Done."
else
echo "WARNING: no address file found for ZIP $fullname"
fi
done
注意:
mutt
会将zip文件干净地附加为附件。 @KyleBanerjee:这与把东西放到邮件里不一样!mutt
不应干扰邮件传输代理postfix
。实际上,我认为mutt
会调用sendmail
的{{1}}兼容接口来实际发送邮件。postfix
文件,脚本将失败。.zip
作为邮件正文。mailbody.txt
之后的参数-s
)。地址文件必须包含以分号分隔的邮件地址列表,例如
mutt
答案 1 :(得分:0)
编写快速shell脚本要容易得多:
for x in `ls *.zip |sed "s/\.zip//"`
do
mail $x@gmail.com < $x.zip
done