使用crontabs并根据日期邮寄电子邮件

时间:2018-11-29 01:50:09

标签: mysql email cron

我有一个名为email的简单数据库,下表名为emails

+----+------+------------+---------------------------+
| id | name | date       | email                     |
+----+------+------------+---------------------------+
|  2 | n8   | 2018-11-15 | my_email@gmail.com |
+----+------+------------+---------------------------+

我正在使用crontab(* * * * * /bin/test.sh)运行test.csh

##test.csh 
#!/bin/csh
mysql -s < /bin/command.sql > /tmp/out$$
foreach i (`cat /tmp/out$$`)

 echo "You have a task that is past due." | mail -s "Task Past Due" $i
end

command.sql(下面的内容)

USE email; SELECT email FROM emails WHERE CURDATE > date;

我将如何在日期之前1天和3天而不是仅在日期过去之后生成这些电子邮件?我的第一个想法是使用3个不同的.sql脚本,上面的一个和两个与此类似的脚本。

WHERE date BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW();

,但这需要test.csh脚本知道要调用哪个.sql脚本。也许我对此太在思索,或者需要完全改变我的实现。还希望将ID包含在电子邮件的主题或正文中,但到目前为止我迷路了。

0 个答案:

没有答案