【问题标题】:send mysql result to an email with php mail function使用php邮件功能将mysql结果发送到电子邮件
【发布时间】:2017-12-12 01:58:25
【问题描述】:

我有一个 php 页面,用于从数据库中获取信息,我需要的是通过电子邮件发送它,但对于每个结果,都会发送一封新电子邮件,而不是所有信息我都在同一封电子邮件中。这是我的 mysql php 脚本

   <?php
include 'myDB.php'; 

 $sql = "this query is working perfectly ";
 $result = mysqli_query($conn, $sql);

//var_dump($result);
 if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
    echo "nombre del paquete: " . $row["nombre_del_paquete"]."
     <srtong>precio total:</strong> " . $row["precio_total"]. " 
    " . $row["nombre"]. "
    " . $row["apellido"]. "
    " . $row["email"]. "

    " . $row["submitted"]. "<br><br>";

        $header ="From: no-reply@test.com" . "\r\n";
    $para    = 'web2@myemail.com';
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $titulo  = 'Newsletter';

    $message = '<html><body>';
    $message .= '<img src="https://world.bookinghello.com/PromoFB/img/hello_logo.png" alt="HELLO" />';
    $message .= '<br/> <p>El siguiente usuario abandono el la compra de un paquete en booking hello </p><br/>';
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="2">';
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $row["nombre_del_paquete"]."</td></tr>";
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $row["precio_total"]."</td></tr>";
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $row["nombre"]."</td></tr>";
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $row["apellido"]."</td></tr>";
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $row["email"]."</td></tr>";

    $message .= "</table>";
    $message .= "</body></html>";



    if(mail($para, $titulo, $message, $header)){
     echo "successful";
                die();
    }else{
        echo "false";
    }
}
 } else {
echo "0 results";
}


?>

当我删除邮件选项时,我在回显中得到 5 个结果,当我添加邮件选项时,我只得到 1 个结果(第一个),并且发送的电子邮件也包含 1 个信息,希望收到 5 个不同的电子邮件

【问题讨论】:

  • while 循环中构造并发送一封电子邮件,因此它会为数据中的每条记录发送一封邮件?
  • 是的,我需要构建循环并为每条记录发送一封电子邮件

标签: php mysql email


【解决方案1】:

创建一个名为sendMail的方法并传递所需的值,发送邮件时将使用该值。

然后,每次迭代调用sendMail

while($row = mysqli_fetch_assoc($result)) {
    //your code
   // Call sendMail
   // some code
}

【讨论】:

  • 你能不能给我一个完整的解释,一个传递所需值和发送电子邮件的例子,我还是基本的 php 和 mysql,提前谢谢
  • 我不确定你想要什么解释,这很简单。您需要创建一个方法并传递值,例如 tofrom 和正文内容等。因为,假设在该迭代中您将拥有 tofrom 和正文内容,则每次迭代都会产生一些结果。所以,同样你需要通过方法
  • 我编辑了我的问题,所以你可以看到我错在哪里,发生了什么我只收到一封电子邮件,只有 1 个结果,实际上我有 5 个结果
  • 如果 while 循环迭代 5 次,那么您将收到 5 封邮件,否则您将不会收到
  • 没错,我添加了 foreach ($row as $test) { $message .= $test; } ///// 但我一直得到 1 个结果,在这种情况下我只需要 5 个,因为是 5 次迭代,是的,如果没有它不会发送电子邮件
猜你喜欢
  • 2014-05-23
  • 2012-12-12
  • 1970-01-01
  • 2012-02-04
  • 2021-05-10
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多