-1

所以,我在一个免费的网络主机 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

4

2 回答 2

1

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

于 2013-10-26T01:52:39.180 回答
0

所以这就是我这样做的方式(很长一段时间与一个拥有数千名用户的网站)

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

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

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

在页面上放置一个元刷新标签,每分钟刷新一次,打开浏览器,启动页面,让它运行一个半小时甚至一整夜……

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

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

于 2013-10-26T03:13:14.760 回答