我有一个不同目的地的循环来发送几封电子邮件。当我一个接一个地发送它们(每个都打破)时,邮件发送成功。当我允许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,所有操作都很完美=)
非常感谢!