我正在尝试从mysql查询向用户发送电子邮件,并在电子邮件的$ message(正文)中包含另一列(employee),该列与表中的该行匹配:
所以bob@test.com只能收到一封电子邮件,其中只有`employee1,employee2,employee3 in email..etc ...
此脚本将通过电子邮件发送每封电子邮件中的所有行。
`employee | email`
`employee1,employee2,employee3 | bob@test.com`
`employee4,employee5,employee6 | steve@test.com`
`employee7,employee8,employee9 | jim@test.com`
Script:
mysql_connect("localhost", "xx", "xx") or die(mysql_error());
mysql_select_db("Joomla") or die(mysql_error());
$query = sprintf("select GROUP_CONCAT(DISTINCT(e.`name`)) AS employee,
m.name as manager, email, r.week,r.year,r.manager_approved, r.Date
from peg_users e
left JOIN peg_users m ON e.manager = m.id
left JOIN project_tracker_tool_finance_report r ON m.id = r.manager
where e.project_tracker_user = 1 AND r.manager_approved = 'NO'
AND CONCAT(r.year,r.week,'') = YEARWEEK(NOW()) -2
GROUP BY m.name
order by m.name
limit 2");
//$email = "to@domain.com";
$result = mysql_query($query);
while($row=mysql_fetch_array($result)) {
$email = $row['email'];
$from_email = "masked";
$emailcc = "masked";
//$emailcc = "";
$subject = "Project Time Tracker - Employees Overdue";
$headers = "From: $from_email" . "\r\n" . "CC: $emailcc";
$body .= " \n "
."Following are the people whoes subscription will expire tomorrow"." \n "."
\n "
."First Name : ".$row['employee']." \n "
."\n". "\n". "==============================". "\n";
}
// send email
if(mysql_num_rows($result) > 0)
{
$send = mail($email, $subject, $body, $headers);
}
mysql_close($conn);
答案 0 :(得分:0)
您可以尝试使用两个sql查询,而不是使用一个。
在您的第一个查询中,获取您想要的所有主要电子邮件,例如bob @ test.com,jim @ test.com等。
获得所有这些电子邮件ID后,执行第二个查询,使用带有主电子邮件ID的where子句获取邮件正文的数据。
希望这会对你有所帮助。