PHP邮件空白电子邮件

时间:2014-09-09 19:29:28

标签: php email

我有一个不同目的地的循环来发送几封电子邮件。当我逐个发送它们(打破for-each)时,邮件发送成功。当我允许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);
}

1 个答案:

答案 0 :(得分:0)

谢谢andrewsi,你是对的。问题是我在循环中使用了require_once,当循环的下一个cicle到达时,var mensaje再也没有填充因为代码已经被要求了。

我替换了包含的require_once,并且所有工作都完美地运行=)

非常感谢!