所以,我正在一个免费的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
答案 0 :(得分:1)
您还可以使用JavaScript并使用Ajax来调用发送邮件的PHP。使用setTimeOut每四秒调用一次脚本,并跟踪通过查询字符串变量发送的电子邮件。
答案 1 :(得分:0)
所以这就是我这样做的方式(长期以来,有一个拥有数千名用户的网站)
这完全是一个黑客,但它确实有效。
构建一个发送单个电子邮件的页面,并在db中将该用户标记为“已发送”,例如(sent = 1)
选择未“发送”的下一个用户(例如,发送= 0)
使用元刷新标记刷新页面上的每一分钟,打开浏览器,启动页面并让它运行一个半小时甚至整晚......
在上午,清除db(设置所有用户发送= 0)
(我曾经让我的剧本整夜运行......)