Foros del Web » Programando para Internet » PHP »

Como enviar mails con PHP sin esperar a que la funcion mail() termine?

Estas en el tema de Como enviar mails con PHP sin esperar a que la funcion mail() termine? en el foro de PHP en Foros del Web. Hola, Como se puede hacer para enviar un mail a multiples destinatarios con PHP sin dejar esperando al usuario a que se terminen de enviar ...
  #1 (permalink)  
Antiguo 08/06/2015, 13:55
 
Fecha de Ingreso: octubre-2011
Ubicación: Buenos Aires
Mensajes: 84
Antigüedad: 12 años, 5 meses
Puntos: 2
Como enviar mails con PHP sin esperar a que la funcion mail() termine?

Hola,

Como se puede hacer para enviar un mail a multiples destinatarios con PHP sin dejar esperando al usuario a que se terminen de enviar todos los mails para redireccionarlo a la siguiente pagina?

Los metodos que se aproximan a esta necesidad podrian ser:
- insertar los datos del mail en la BD y luego enviarlos
- enviar mails en forma asincronica.
- otro

Ninguno de los metodos mencionados se como realizarlo.

Gracias!
  #2 (permalink)  
Antiguo 08/06/2015, 19:36
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
Respuesta: Como enviar mails con PHP sin esperar a que la funcion mail() termine?

aprende ajax.
con eso lo tendras listo, pero no deberá cerrar en ningun caso la ventana
igual tendras que desplegar un mensaje de enviando con un loading.

lo otro es enviarlo por procesos internos y eso si que es engorroso tendrias que usar cron job's

o la otra es ejecutar el proceso de forma interna llamando a php cli y dejando el proceso en background

esas serian las obciones que te puedo mencionar
  #3 (permalink)  
Antiguo 09/06/2015, 03:07
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Como enviar mails con PHP sin esperar a que la funcion mail() termine?

Si estás usando php_fpm como SAPI, la forma de hacerlo es con fastcgi_finish_request.Si no, deberias crear un servicio (programa aparte, ejecutado desde el cli) que se encargue de ese tipo de cosas.
  #4 (permalink)  
Antiguo 09/06/2015, 10:28
 
Fecha de Ingreso: octubre-2011
Ubicación: Buenos Aires
Mensajes: 84
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Como enviar mails con PHP sin esperar a que la funcion mail() termine?

Yo utilizo sendmail para el envio de mails. Vi que hay una opcion de envio de mails en el background, modificando el archivo php.ini con delivery mode=b:

sendmail_path = /usr/sbin/sendmail -t -i -O DeliveryMode=b

Este metodo funciona? Cual me recomiendan de todos?

Gracias
  #5 (permalink)  
Antiguo 09/06/2015, 14:29
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Como enviar mails con PHP sin esperar a que la funcion mail() termine?

Yo prefiero usar queues, las puedes implementar utilizando un servidor de mensajes como RabbitMQ, Beanstalkd, etc. También puedes crear una utilizando redis.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: esperar, funcion, mail, mails
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:12.