No te llega porque estás llamando a "envio.php" en vez de enviar.php".
Llevas pocos días programando verdad? De lo contrario sabrias que para eso no debes de hacerlo así, si no llamar a una función y poner ahí el contenido de enviar.php
De todas formas, tengo un ratito y quisiera ayudarte en algo extra que te ayudará en el futuro para usar menos lineas de código pues cuanto más largo sea, hay más probabilidades de que falle. Siempre hay una manera más corta de hacer lo mismo, es cuestión de conocer los atajos.
Te comparto tus archivos modificados, con menos repeticiones y con menos lineas de código (aún se podría reducir más esa lógica de index.php si se modificase la estrctura del "usuario.model.php" y quizá también de "usuario.entidad.php".
index.php (solo php, el html sigue igual)
Código PHP:
<?php
session_start();
if(!isset($_SESSION["user_id"]) || $_SESSION["user_id"]==null){
print "<script>alert(\"Acceso invalido!\");window.location='../../login.php';</script>";
}
require_once 'usuario.entidad.php';
require_once 'usuario.model.php';
# Incluimos el archivo enviar que contendrá la función para enviar correos y podrá ser llamada desde cualquier lugar donde se necesite enviar el correo
include 'enviar.php'
// Logica
$alm = new Usuario();
$model = new UsuarioModel();
$page = 'index';
if(isset($_REQUEST['action']))
{
foreach($_REQUEST as $key => $value) {
$$key = $value; # Convertimos el índice en una variable al cual le asignamos el valor correspondiente
if($action == 'actualizar' && $key == 'id')
$alm->__SET($key, $value); # Solo si estamos actualizando, se añadirá a __SET el id del registro para actualizarlo
$alm->__SET($key, $value); # Como estamos dentro de un bucle, estamos seteando cada valor de $_REQUEST dentro de la función __SET
}
if($action == 'eliminar')
$model->$action($id);
else if($action == 'editar')
$model->Obtener($id); # Podrías eliminar esta linea, y dejar solo la de arriba si en vez de Obtener, fuese "Editar" .
else
$model->$action($alm);
if($action == 'enviar')
$page = '../mail/enviar';
if($action != 'editar')
header('Location: ' . $page . '.php');
}
?>
enviar.php (fijate que se incluyó este archivo dentro de index.php, después de los requires_one, para asi poder llamar a enviarCorreo desde cualquier lugar en index.php
Código PHP:
<?php
function envioCorreo($data) {
foreach($data as $key => $value) {
$$key = $value; # Convertimos el índice en una variable al cual le asignamos el valor correspondiente
$from="JESYMCA SISTEMA INTERNO";
$to="[email protected]";
$asunto="Test desde Archivo Mail PHP";
$msg='<html>
<head>
<title>Actualizacion en Status de Despacho</title>
</head>
<body>
<table>
<tr><td>
<img src="http://www.jesuministrosymas.com.ve/LOGO.png" width="400" height="74" alt="J.E SUMINISTROS Y MAS, C.A." longdesc="LOGO J.E SUMINISTROS Y MAS, C.A." id="logo" align="left">
</tr></td>
<tr>
<td>Saludos Cordiales Estimado/a '. $nombre.'</td>
</tr>
<tr>
<td>Sally</td>
</tr>
</table>
</body>
</html>';
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$cabeceras .= "To: $to" . "\r\n";
$cabeceras .= "From: $from" . "\r\n";
// mail($to,$subj,$msg,"From: $from");
$res = mail ( $to, $asunto, $msg,$cabeceras);
var_export( $res );
}