PHP确认电子邮件,允许服务器电子邮件限制

时间:2012-03-30 01:14:33

标签: php email delay confirmation

我们目前有一个有效的PHP邮件脚本,这很好,正如我们预期的那样。但是今天我们遇到了一个无法预料的问题,即服务器通过PHP每分钟只提供大约15封电子邮件,以避免将其IP地址列为黑名单。

我们并没有试图绕过这一点。我们想要一种方法来确保不超过此限制。所以我的问题是,根据过去60秒内发送的电子邮件数量,我可以使用哪些方法来设置某种类型的延迟。

请注意,db_query()是一个正确但专用的函数,用于执行SQL查询

这是我们的邮件脚本(简化):

$user_verification_key = md5(rand(1000, 100000000000));
db_query("insert into user_t values('" . $user . "', '" . $userinfo['first_name'] . "', '" . $fb_userinfo['last_name'] . "', '" . $userinfo['username'] . "', '" . $_POST['user_country'] .  "', '" . $_POST['regions'] . "', '" . $_POST['paypal'] . "', '" .     $user_verification_key . "', 0)");
$msg = "Thankyou for signing up:\n\n
        Click the link to verify your account: http://website.com/verify.php?user=" . $fb_userinfo['id'] . "&verify=" . $user_verification_key . "
         ";

mail($_POST['paypal'], 'Account verfication', $msg, 'From: ' . 'no_reply@bartermate.com.au');
    header("location: index.php?page=home&msg=Congratulations, your account has been setup please verify your email address");        

2 个答案:

答案 0 :(得分:2)

一种简单的方法是将所有未处理的电子邮件存储在MySQL数据库中,并使用cronjob逐步间隔(例如每10-15分钟)逐步浏览它们。这样您就不会违反托管条款。

如果你正在使用 cPanel ,这非常简单,因为你可以设置一个cronjob并将其链接到你的PHP脚本。您的所有脚本都必须连接到您的数据库,访问所有未处理的电子邮件(即状态为0的电子邮件)并发送它们。在循环浏览它们时,将其状态更改为1。

如果您对它们不太熟悉,请详细了解cronjobs here

答案 1 :(得分:1)

我能想到的最简单的方法是将所有外发电子邮件存储在数据库中,然后使用每1(或2分钟,为安全)运行的cron,并发送最多15个等待的电子邮件。< / p>

相关问题