在PHP中发送大量电子邮件?阻止垃圾邮件

时间:2013-10-26 01:09:42

标签: php email spam massmail

所以,我正在一个免费的webhost 3owl.com上运行。我知道免费主机与付费相比很糟糕,但它是暂时的。无论如何,我有90个用户需要发送电子邮件给他们。

问题:

I cannot send them at a speed of more than 1 every 4 seconds.

I must not run the while loop for more than 40 seconds at a time.

所以,我需要帮助找出如何分段发送电子邮件。

Send email 1
4 second break
Send email 2
4 second break
Send email 3
4 second break
Send email 4
4 second break
Send email 5
4 second break
Send email 6
4 second break
Send email 7
4 second break
Send email 8
4 second break
Send email 9
4 second break
Send email 10
---------------
STOP SCRIPT in a way that doesnt load the website? for 10 seconds
---------------
continue with the next 10

这甚至可能吗? 也许是某种列出用户的复选框系统,你可以查看你希望通过电子邮件发送给谁...

这是我目前的代码

mail_users($_POST['subject'], $_POST['content']);

它的功能如下:

function mail_users($subject, $body) {
    $query = mysql_query("SELECT `email`, `first_name` FROM `users` WHERE `allow_email` = 1");
    while (($row = mysql_fetch_assoc($query)) !== false) {
        email($row['email'], $subject, "Hello ". $row['first_name'] . ",\n\n" . $body);
        sleep(4);
    }
}

我非常需要帮助。也许复选框需要一些javascript

2 个答案:

答案 0 :(得分:1)

您还可以使用JavaScript并使用Ajax来调用发送邮件的PHP。使用setTimeOut每四秒调用一次脚本,并跟踪通过查询字符串变量发送的电子邮件。

答案 1 :(得分:0)

所以这就是我这样做的方式(长期以来,有一个拥有数千名用户的网站)

这完全是一个黑客,但它确实有效。

构建一个发送单个电子邮件的页面,并在db中将该用户标记为“已发送”,例如(sent = 1)

选择未“发送”的下一个用户(例如,发送= 0)

使用元刷新标记刷新页面上的每一分钟,打开浏览器,启动页面并让它运行一个半小时甚至整晚......

在上午,清除db(设置所有用户发送= 0)

(我曾经让我的剧本整夜运行......)