【问题标题】:How to send multiple mails from multiple users tables in database(php + mysql + cronjob)?如何从数据库中的多个用户表发送多封邮件(php + mysql + cronjob)?
【发布时间】:2016-08-13 14:42:38
【问题描述】:

我有一个 MySQL 数据库,它有一个表,其中包含所有用户(姓名、电子邮件地址、密码和其他一些列,例如“last_login”。然后,每个用户都有一个表,名称为“LastnameFirstname” ”。“姓氏名字”表包括多个电子邮件地址和与电子邮件地址对应的消息正文。

我想要的是向“姓氏名字”表中的收件人发送电子邮件。

以下是一些适用于我的代码,但仅适用于一个名为“LastnameFirstname”的表。我可以发送带有相应正文文本的消息就好了。

“LastnameFirstname”表中的电子邮件应在满足特定条件时发送,例如“isActivated”或自上次登录后超过 7 天。那么,如何访问多个“LastnameFirstname”表并将消息发送到相应的电子邮件地址。

我希望我的观点很清楚。请告诉我是否应该改进这个问题...google-fu 无济于事。我读了一些关于 join 和 implode 的内容,但没有多大帮助。最后,我想要一个可以在服务器端作为 cronjob 运行的脚本......

到目前为止,这是我的代码:

<?php
mysql_connect("localhost", "root", "") or
die("No connection possible: " . mysql_error());
mysql_select_db("test");

//$result = mysql_query("SELECT emailadresse, message FROM StrohmeierStefan, table_LastnameFirstname");

$result = mysql_query("SELECT emailadresse, message FROM table_LastnameFirstname");
$headers = "From: test@test.de";
$subject = "Message Subject";
//$text = "Hallo Welt! Did it work?";


while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("eMail:   %s", $row[0]);
printf("<br/>");

$to = $row[0];
$text = $row[1];
mail($to, $subject, $text, $headers);
}

mysql_free_result($result);
?>

【问题讨论】:

  • 您应该对查询使用内连接并查阅 lastlogin 并进行比较
  • 那是一个名字很糟糕的表
  • 为什么这是一种不好的方法来标记表格?你能帮我吗?有什么更好的方法?

标签: php mysql database email


【解决方案1】:

您应该像这样更改您的查询:

$result = mysql_query("SELECT emailadresse, message FROM table_LastnameFirstname AS msg LEFT JOIN main_users_table AS usr ON msg.user_id = usr.id WHERE usr.isActive OR usr.last_login < DATE_SUB(NOW(),INTERVAL 1 WEEK)");

【讨论】:

    猜你喜欢
    • 2017-02-18
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2018-06-08
    相关资源
    最近更新 更多