| |||
Una pregunta importante Que hay? Tengo una duda que es realmente importante para el desarrollo una pagina que toy intentando. Necesito que cuando un usuario haga clik en un sitio el php mande un mail con mucho peso a una direccion de correo. Ya lo he implementado con el phpmailer el problema es que hasta que no se ha terminado de enviar el mail, el php se detiene, y pueden ser varios minutos. Me gustaría saber si es posible que se de la orden de enviar el mail y sin esperar a que se envie siga adelante el php, e independientemente de lo que haga ese usuario el mail se termine de enviar, aunque el usuario cerrara el navegador. Pos si me habeis entendido mal la informacion que se envía está en el servidor, no la sube el usuario, este solo da la orden de que el servidor la envie y no a ese usuario sino a otra dirección. |
| |||
El problema puede ser por que PHP consume más memoria de la que tiene predeterminada. Puedes subirle los mbytes desde el php.ini, pero normalmente con 8 o 10 mbytes sobra. Si no es esto, postea el error,ya que sin verlo es un poco dificil ayudarte.
__________________ Saludos, Miguel SAITSERVER >> www.saitserver.com << Calidad y Compromiso garantizados en Alojamiento Web. |
| |||
El problema no es ningun error, creo que no has entendido bien mi mensaje, a lo mejor no está del todo claro. Para que nos entendamos quiero que el usuario de una orden para que se envie un mail, pero que no tenga que estar esperando en la pagina que da la orden para que termine de enviarse el mail. Tal y como lo tengo ahora el usuario tiene que esperar a que el servidor envie el mail, que pueden ser varios minutos y eso no me vale. Voy a ser mas grafico, tal como lo tengo el usuario al dar la orden abre el siguiente php: $mail = new PHPMailer(); $mail->Mailer = "smtp"; $mail->Host = "smtp.com"; $mail->From = "[email protected]"; $mail->FromName = "Boss"; $mail->Timeout=30; $mail->AddAddress("[email protected]"); $mail->Subject = "Prueba de phpmailer"; $mail->Body = "<b>Nuevo pedido</b>"; $mail->AltBody = "Nuevo pedido"; $mail->AddAttachment("output.zip","pedido.zip"); $exito = $mail->Send(); y hasta que no termina $exito = $mail->Send(); no pasa a la siguiente lines de codio, y yo quisiera que siguiera adelante la ejeccuión mientras se envía el mail Última edición por yideon; 01/09/2003 a las 10:17 |
| |||
ok, perdona. Nunca he hecho eso, ya que como bien sabes PHP se ejecuta desde el navegador. Me pillas de lleno Con php no se si se podrá ( seguro que sí ) Suerte, y ya me contarás si lo solucionas.
__________________ Saludos, Miguel SAITSERVER >> www.saitserver.com << Calidad y Compromiso garantizados en Alojamiento Web. |
| |||
mmmmm....... según que tipo de aplicación. Si el amigo yideon intenta mandar un e-mail de 10 mBytes mediante la funcion mail de PHP te aseguro que va a tardar un rato.
__________________ Saludos, Miguel SAITSERVER >> www.saitserver.com << Calidad y Compromiso garantizados en Alojamiento Web. |
| |||
Hola, Cita: Creo que te has expresado mal. PHP se ejecuta en el servidor. Normalmente lo mandas ejecutar desde el navegador, y se puede parar la ejecucion cancelando la carga desde el navegador.Nunca he hecho eso, ya que como bien sabes PHP se ejecuta desde el navegador. Puede que el problema sea el tiempo de ejecucion, prueba a aumentar max_execution_time en el php.ini o usar set_time_limit() (www.php.net/set_time_limit). Aun asi, si el usuario se desconecta o cancela la carga, parara la ejecucion. Y que yo sepa, no hay forma de evitar el tener que esperar a que finalice la funcion. Saludos.
__________________ Josemi Aprendiz de mucho, maestro de poco. |
| |||
Solucionado, pero de otra forma Bueno yo lo he solucionado por otro lado, he dado la funcion de servidor de correo a mi servidor. Ahora cuando alguien hace la peticion se guarda el mail en el directorio de la persona a la que quería que se le enviara, así me ahorro el que el usuario tenga que estar esperando y la persona receptora tiene su mail. Gracias a todos. |