自动回复:在订阅SQL语句后1分钟发送

时间:2015-06-17 20:01:45

标签: php mysql newsletter auto-responder

我创建了自动回复系统,用于通过动态时间进行订阅感谢信息。

常规设置具有时间功能,例如1分钟,1天,1周等。当客人在我的列表上订阅时,基于cron的自动回复器应该在选定的时间条件下发送感谢信息。但我的SQL查询无法正常工作。我尝试了很多查询,但现在没有成功。这是我的构建;

订阅者表

ID   mail              add_date
1    mail1@gmail.com   2015-06-16 22:11:20
2    mail2@gmail.com   2015-06-16 22:19:30

当前时间: 2015-06-16 22:20:30

SQL查询:

SELECT 
        S.* 
FROM 
        subscribers AS S
        LEFT JOIN tasks AS T ON (T.CID=2 AND S.subscriber_mail=T.subscriber_mail)
        LEFT JOIN unsubscribes AS U ON (U.CID=2 AND S.subscriber_mail=U.subscriber_mail)
WHERE
        (T.subscriber_mail IS NULL)
        AND (U.subscriber_mail IS NULL)


 AND (S.add_date > date_sub('2015-06-16 22:20:30', interval 1 MINUTE)) LIMIT 5000

它已成功发送,但是如果我为“1天后”创建新条件它无法正常工作,它会在第一次查询后发送相同的消息,它不会等待1天。

简而言之;

我想在订阅后发送3封邮件,1分钟,1天,1个月后。

谢谢!

1 个答案:

答案 0 :(得分:0)

也许这可以解决你的问题:

SELECT * FROM 
    subscribers
WHERE
    add_date >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)

如果您使用NOW(),您将始终在查询中使用您不需要的分钟/秒(如果您的差异是> = =一天)。