每月运行一次的Bash脚本从文件中获取电子邮件以获取电子邮件地址,并向其发送使用其他文件作为附件的邮件

时间:2014-11-18 23:15:57

标签: bash email cron

如果我可以寻求帮助,因为我不知道如何编写这个脚本。该脚本应该是一个整体,并且每个月检查另一个仅包含电子邮件地址的文件,使用这些地址并向每个文件发送包含另一个文件作为附件的消息。 我知道cron,但脚本必须自己修改cron文件,用户无法做到。我设法将唯一的代码组合在一起,但它根本没有完成任务。

以下是我想要的解释: 1.每月一次脚本从file1获取电子邮件地址(我们不需要担心这个文件,它存在并包含电子邮件地址) 2.该脚本为file1中列表中的每封电子邮件创建电子邮件 3.对于每个消息,脚本附加另一个文件,file2(我们不需要担心file2,它存在)所以file2将作为附件发送 4)脚本发出这些消息

目前我设法编写以下代码。它正确发送电子邮件,但负责重新安排下一次出现的部分会返回错误。我在下面提出了这些错误。

#!/bin/bash
while read line           
do  
   printf "Sending attachement " | mail -s 'plik' -a $2 $line              
done <$1
nskip=31 #co ile dni ma się uruchomić
akt_miesiac=`date +"%m"`
nowy_miesiac=`date --date='$nskip days' +"%m"`
if [[ akt_miesiac = nowy_miesiac ]] 
then
((nskip+=7))
fi
date=`date --date='$nskip days' +"9:00AM"` #ustalenie nast daty
at -m $date < $0 #ustalenie nast daty

日期:错误的日期:$nskip days' date: wrong date: $ nskip天' 乱码时间

或者我想出了类似的东西,这也行不通:

#!/bin/bash
while read line           
do  
   printf "Sending attachement " | mail -s 'plik' -a $2 $line              
done <$1
if (date -d "%d" ==1) & (date "r" =="12:00:00")
then
date=`date --date='1 month'` #ustalenie nast daty
at -m $date < $0 #ustalenie nast daty
fi

1 个答案:

答案 0 :(得分:0)

循环读取文件中的电子邮件地址,保存当前目标收件人和要作为变量发送的文件(也许您可以从另一个可以更新的文件中读取要发送的文件的路径,如果您喜欢),并使用mutt(&#34; man mutt&#34;)来查看语法,它还不错。