Guía Avanzada: Cómo Redirigir Correos a un Script (Pipe to Program) en cPanel
La función de Redireccionamiento con Tubería (Pipe to Program) es una herramienta poderosa para desarrolladores. Permite que un correo electrónico entrante sea procesado inmediatamente por un script (PHP, Python, Perl) en lugar de guardarse en un buzón.
Esto es fundamental para crear sistemas de tickets de soporte, procesadores de formularios automáticos o analizadores de contenido personalizados.
Ejecutar un script por cada correo recibido consume recursos de CPU y RAM (Procesos Entrantes). Si tu aplicación es crítica, evita los límites del hosting compartido y obtén potencia dedicada.
Ver VPS Linux de Alto Rendimiento
Requisitos Previos (Crucial para Desarrolladores)
Antes de configurar cPanel, tu script debe cumplir con tres reglas de oro o fallará silenciosamente:
- El Shebang (Hashbang): La primera línea del archivo debe indicar dónde está el intérprete.
- Para PHP:
#!/usr/bin/php -q - Para Python:
#!/usr/bin/python
- Para PHP:
- Permisos de Ejecución: El archivo debe tener permisos 755 (rwxr-xr-x).
Comando SSH:chmod 755 /home/usuario/scripts/mi_script.php - Ubicación: Por seguridad, se recomienda colocar el script fuera de la carpeta
public_html(ej: en/home/usuario/scripts/), aunque funciona en cualquier ruta.
Ejemplo de Script PHP para Leer Correos
El siguiente código PHP muestra cómo capturar el contenido del correo desde la "entrada estándar" (STDIN):
#!/usr/bin/php -q
<?php
// Abrir el flujo de entrada estándar
$fd = fopen("php://stdin", "r");
$email_content = "";
// Leer el correo línea por línea
while (!feof($fd)) {
$email_content .= fread($fd, 1024);
}
fclose($fd);
// AQUI TU LÓGICA:
// 1. Parsear $email_content (usando librerías como php-mime-mail-parser)
// 2. Guardar en base de datos
// 3. Crear ticket, etc.
?>
Paso a Paso: Configurar el "Pipe" en cPanel
Una vez que tu script está listo y con permisos 755, conéctalo al sistema de correo:
- Inicia sesión en cPanel.
- Ve a la sección Correo Electrónico y haz clic en Reenviadores (Forwarders).
- Haz clic en Añadir Reenviador.
- Dirección de reenvío: Escribe el nombre del correo virtual (ej: [email protected]). No es necesario que esta cuenta exista realmente.
- Haz clic en Opciones Avanzadas para desplegar el menú oculto.
- Selecciona la opción Redirigir a un programa (Pipe to a Program).
- Ruta del programa: Escribe la ruta relativa desde tu directorio home.
Ejemplo: Si tu script está en/home/usuario/scripts/procesar.php, solo debes escribir:scripts/procesar.php - Haz clic en Añadir Reenviador.
Cómo probar si funciona
Envía un correo real desde Gmail o Outlook a la dirección que configuraste (ej: [email protected]). Si todo está bien, tu script se ejecutará. Si el correo te rebota con un mensaje de error ("Bounce"), revisa los permisos del archivo (755) y que no haya errores de sintaxis en tu código PHP/Python.
Preguntas Frecuentes
¿Por qué el correo rebota con el error "local delivery failed"?
El 90% de las veces es porque el script no tiene permisos de ejecución. Asegúrate de ejecutar chmod 755 nombre_archivo.php. También verifica que la primera línea (Shebang) sea correcta y no tenga espacios en blanco antes del #!.
¿Puedo usar esto para responder automáticamente?
Técnicamente sí, pero ten mucho cuidado con los "bucles infinitos". Si tu script envía una respuesta automática a un correo que también es una respuesta automática, crearás un ciclo que colapsará tu servidor en minutos. Siempre programa validaciones para detectar auto-respuestas.
