我有一个10行的产品表(名称、价格)和另一个50行的客户表(客户名称和电子邮件),使用mysql数据库。我想将我的产品列表(10行)发送给活动的客户。
这样每一个客户都可以将所有10行产品作为一封电子邮件。
我试着把product和client表放在一个循环中,但我只能发送一对一的电子邮件。
以下是我的代码:
$sql = mysqli_query($conn, "SELECT * FROM products");
$numRows = mysqli_num_rows($sql);
$mail_body = '';
while($row = mysqli_fetch_array($sql)){
$id = $row["pdid"];
$price = $row["price"];
$product = $row["product"];
$mail_body = '';
}
$sql = mysqli_query($conn, "SELECT email FROM clients WHERE type='Active'");
$numRows = mysqli_num_rows($sql);
$email = '';
while($row = mysqli_fetch_array($sql)){
$email = $row["email"];
$name = $row["firstname"];
}
$subject = "New products";
$headers = "From:info@welcare.com\r\n";
$headers .= "Content-type: text/html\r\n";
$to = $email;
$mail_result = mail($to, $subject, $mail_body, $headers);
if ($mail_result) {
echo 'ok';
}
下面的链接显示了如何为一个静态电子邮件地址循环多个产品行,但我希望能够使用php将电子邮件发送到多个电子邮件客户端,并将产品行循环作为电子邮件的主体,所有这些都来自mysql数据库表。
Send multiple rows in one email
有人能帮我吗
谢谢
最佳答案
您需要将对mail
的调用放在循环中,循环遍历客户端:
...
$sql = mysqli_query($conn, "SELECT email FROM clients WHERE type='Active'");
$numRows = mysqli_num_rows($sql);
$subject = "New products";
$headers = "From:info@welcare.com\r\n";
$headers .= "Content-type: text/html\r\n";
while($row = mysqli_fetch_array($sql)){
$email = $row["email"];
$name = $row["firstname"];
$mail_result = mail($email, $subject, $mail_body, $headers);
}
关于php - 在php中发送多个电子邮件行和多个产品列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40503919/