【问题标题】:Implement an automatic reminder email feature for web based application为基于 Web 的应用程序实现自动提醒电子邮件功能
【发布时间】:2013-07-12 03:04:22
【问题描述】:

我想为我的 Web 应用程序创建一个功能,一旦用户进入我的数据库,每 4 周就会向他们发送一封电子邮件,提醒他们例如提供一些反馈。我听说 cron 工作是我正在寻找的,但我很好奇那里还有什么,是否可能存在一个 php 脚本或一种简单的方法来做到这一点?

我想要类似倒计时的东西,从他们进入数据库开始倒计时直到 4 周过去,然后调用 php 文件或向他们发送我选择的电子邮件的东西。如果这是可能的,请告诉我!谢谢你

【问题讨论】:

    标签: php html web-applications cron email


    【解决方案1】:

    我会说使用 cron 作业(它可以在每天的某个时间运行,这将是发送电子邮件的好方法),并且 cron 作业可以调用一个 php 脚本,该脚本将查看所有用户并检查他们何时注册了,看看是否有人在 4 周前(或之前的某个时间)注册了。对于满足此条件的任何人,您都可以通过一个循环并使用 mail() 函数向他们发送电子邮件。

    定时任务

    登录到服务器上的 shell 并输入“sudo crontab -e”并输入如下内容:

    30 14 * * * php path/to/some/phpscript.php
    

    在本例中,phpscript.php 将在每天 14:30(下午 2:30)运行。但这并不意味着它会每天向所有用户发送电子邮件!请参阅下面的脚本。

    PHP 脚本

    <?php
    # get all users (or your query could choose only users who signed up (4 weeks)*n ago)
    $result = mysql_query('SELECT * FROM user');
    $users = array();
    while($row = mysql_fetch_assoc($result)) $users[] = $row;
    
    # loop through users and (if you didn't already check) see which ones have signed up (4 weeks)*n ago
    foreach ($users as $user) {
        # take the number of seconds and convert it to number of days
        $today = (int)(strtotime(date('c')) / 60 / 60 / 24);
        $signup_day = (int)(strtotime($user['signup_date']) / 60 / 60 / 24);
        # check if the amount of days since signup is a multiple of 28 (4*7)
        if (($today - $signup_day) && ($today - $signup_day) % 28 == 0) {
            send_mail_to($user);
        }
    }
    ?>
    

    【讨论】:

    • 好吧 ^^ 听起来像我需要的!但我有点困惑......即使它每天以 230 的速度运行,它在技术上不是吗?这是为什么呢?
    • 它会在每天 2:30 运行脚本,但脚本本身会检查所有用户和日期,并且只发送正确的电子邮件。
    • 我明白了....每天运行的效率很高吗?或者这几乎是最好的选择.....
    • 每天运行一次 30 行的小脚本并不是低效的。计算机每天可以运行数百万行代码而不费吹灰之力!
    • 好吧,我使用免费的流行主机,它也提供数据库。我会说他们的硬件资源太垃圾了,所以我不介意让 cronjob 每天而不是每 1 分钟运行一次:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2018-09-14
    相关资源
    最近更新 更多