PHP邮件空白电子邮件


PHP Mail blank emails

我有一个不同目的地的循环来发送几封电子邮件。当我一个接一个地发送它们(每个都打破)时,邮件发送成功。当我允许for each在循环中发送所有邮件时,有几封邮件是空白的。。。

为什么尝试从for each循环中发送多封电子邮件会导致空白电子邮件?

foreach ($facturas as $factura) {
    $para = "";
    $cabeceras = "";
    $mensaje = "";
    $título = "";
        $query = "SELECT *,u.email as email_usuario,u.nombre usu_nombre,u.apellido usu_apellido,e.nombre evento_nombre,
                    e.fecha evento_fecha,o.nombre op_nombre,c.nombre cat_nombre
                    FROM facturas 
                    INNER JOIN inscribite_eventos e ON e.codigo = fac_evento_id
                    INNER JOIN inscribite_opciones o ON o.id = fac_op_id AND o.evento = fac_evento_id
                    INNER JOIN inscribite_categorias c ON c.deevento = fac_evento_id AND c.codigo = fac_cat_id
                    INNER JOIN inscribite_usuarios u ON u.id = fac_usu_id
                    WHERE fac_id = {$factura['fac_id']}";
        $inscripcion = getRowQuery($query, $mysqli);
        if (!empty($mysqli->error)) {
            throw new Exception('Fallo trayendo datos' . $query . '<br>' . $mysqli->error);
        }
        //$para = ' '.$inscripcion['usu_nombre'].' '.$inscripcion['usu_apellido'].' <'.$inscripcion['email_usuario'].'>'; // con coma si son más
        $para = 'dedieu92g@gmail.com';
        // título
        $título = 'Confirmacion de Pago Inscribite Online';
        // Para enviar un correo HTML, debe establecerse la cabecera Content-type
        $cabeceras = 'MIME-Version: 1.0' . "'r'n";
        $cabeceras .= 'Content-type: text/html; charset=UTF-8' . "'r'n";
        // Cabeceras adicionales
        //$cabeceras .= 'To: Usuario <'.$inscripcion['email_usuario'].'>' . "'r'n";
        $cabeceras .= 'From: Recordatorio <info@inscribiteonline.com.ar>' . "'r'n";
        $cabeceras .= 'Cc: Recordatorio <info@inscribiteonline.com.ar>' . "'r'n";       
        if ($inscripcion['tipo'] == 'Deportivos') {
            require_once 'mail_deportivos.php';
        }
        elseif ($inscripcion['tipo'] == 'Servicios') {
            require_once 'mail_servicios.php';
        }
        elseif ($inscripcion['tipo'] == 'Productos') {
            require_once 'mail_productos.php';
        }
        elseif ($inscripcion['tipo'] == 'Capacitación') {
            require_once 'mail_capacitacion.php';
        }

        header('Content-Type: text/html; charset=UTF-8'); 
        // Enviarlo
        if(mail($para, $título, $mensaje, $cabeceras)){
            $query = "UPDATE facturas_pagas SET facp_avisado = 1 WHERE facp_fac_id = {$inscripcion['fac_id']}";
            runQuery($query,$mysqli);
            //echo $mensaje;
            //die('mando con factura'.$inscripcion['fac_id']);
        }
        sleep(2);
}

谢谢andrewsi,你说得对。问题是,我在整个循环中使用了require_sonce,当循环的下一个循环到达时,var mensaje再也不会填充,因为代码已经是必需的。

我将require_one替换为include,所有操作都很完美=)

非常感谢!