如何在一个月内仅向用户发送五次电子邮件

时间:2015-02-25 04:27:32

标签: php wordpress

我正在撰写联系表格。我需要根据用户在一个月内设置的次数向用户发送电子邮件。对于前如果用户为联系请求设置5,那么他将在一个月内收到来自5个用户的电子邮件。请帮我。

3 个答案:

答案 0 :(得分:1)

这是我想到的第一个想法。将他们的设置存储在MySQL表中,并有一个单独的列,表明他们本月已经通过电子邮件发送了多少次。您可以拥有与此类似的日常cron作业:

$select_result = mysqli_query($database_connection, "SELECT email_pref,
email_this_month, user_id FROM users WHERE email_this_month > 0");
while($row = mysqli_fetch_array($select_result, MYSQLI_NUM)) {
 if ($row[1] =< $row[0]) {
   ///send email
   //Code to update the MySQL server, something like "UPDATE users SET email_this_month = email_this_month - 1 WHERE user_id = $row[3]";
  }
}

您还应该在数据库中存储一个跟踪其“月”的日期,并且您可以通过SQL或PHP预先形成日期间隔命令,以确定自注册以来是否已经过了一个月,如果是,重置已通过电子邮件发送的次数,并将该日期设置为当前日期,以便将来再次引用它。 DATE_ADD通过SQL或日期函数对PHP中的字符串起作用

http://php.net/manual/en/function.date-add.php http://www.w3schools.com/sql/func_date_add.asp

或者,您可以在服务器中为每个用户存储一些SESSION变量或COOKIES,但我不确定它的效率如何。我认为这可能更快

答案 1 :(得分:1)

您多久发送一次电子邮件? 如果您每周制作一次重要的电子邮件,也可以作为解决方案。

您可以考虑创建不同的电子邮件列表。 每周/每日/每月两次。

答案 2 :(得分:0)

创建一个将不时自动运行的文件,该文件将存储用户每月收到电子邮件的次数以及他在当月收到的次数。 然后,该文件将运行数据库中的每个用户。它将检查用户收到电子邮件的次数与他想要的次数相比。如果用户需要收到另一封电子邮件,那么它将发送给他,它将更新数据库值。