Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/02/2009, 05:49
mp3man
 
Fecha de Ingreso: junio-2008
Mensajes: 16
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Duda acerca de envío de mails con sendmail en FreeBSD

Buenas,
no es eso, es que la función mail se encalla mucho rato, dado que utiliza el comando sendmail. De todas formas, creo que lo he solucionado, haciendo una chapucilla. He utilizado un thread para llamar a la función mail, así lo realiza un proceso hijo, y mientras lo va enviando, el cliente (página web) ya tiene la respuesta, aunque sea afirmativa y la función mail devuelva finalmente false. Es una chapuza pero de momento me ha funcionado.
Este es el trozo de código que he utilizado (aunque este no es el foro adecuado para ello):
Código PHP:
if(function_exists('pcntl_fork'))
{
    
$pid pcntl_fork();
}
if (isset(
$pid) && $pid == -1) die("could not fork");
elseif (isset(
$pid) && $pid) exit();
else
{
    if(!
mail($to,$subject,$message,$headers)) return false;
    else
    {
        if(
$generate_logscmMain::Log("MAIL: Mail (HTML) sended to {$to}");
        return 
true;
    }

Ventajas del sistema: El script tarda 0.0010 ms en ejecutarse.
Desventajas: No se sabe si dará error o lo que sea, pero no pasa nada porque el envío de mails para nada es imperativo e imprescindible para el funcionamiento de la web.
Hay que instalar la extensión pcntl que no me venía por defecto en freebsd.