簡體   English   中英

PHP確認電子郵件,允許服務器電子郵件限制

[英]PHP confirmation email, allowing for server email limits

我們目前有一個工作正常的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");        

一種簡單的方法是將所有未處理的電子郵件存儲在MySQL數據庫中,並使用cronjob定期間隔(例如,每10-15分鍾一次)遍歷它們。 這樣,您就不會違反托管條款。

如果您使用的是cPanel ,那么這非常容易,因為您可以設置cronjob並將其鏈接到您的PHP腳本。 您的腳本所需要做的就是連接到數據庫,訪問所有未處理的電子郵件(即狀態為0的電子郵件)並將其發送。 當您遍歷它們時,將其狀態更改為1。

如果您不太熟悉它們,請在此處了解有關cronjobs的更多信息。

我能想到的最簡單的方法是將所有傳出的電子郵件存儲在數據庫中,然后使用cron程序,該程序每1(為了安全起見,每2分鍾運行一次)運行一次,最多發送15封等待中的電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM