2012-02-18 60 views
9

¿Es posible enviar correos electrónicos asincrónicos con phpmailer?Enviar correo electrónico asincrónico con phpmailer

enviar correo regular fragmento de código es el siguiente:

$mail->Send();

PHP espera a que el Enviar() para devolver el resultado antes de continuar. ¿Es posible tener phpmailer para devolver un resultado al instante sin esperar a que se complete la rutina real de envío de correo electrónico.

Respuesta

8

Actualización mayo el año 2016

Como se ha mencionado por el usuario @Sinak Salek PHP soporta multithreading. Está disponible usando la extensión pthreads.

original

PHP no soporta multithreading forma nativa (que usted tiene que hacer esto muy bien). Sin embargo, puedes hacerlo guardando los correos electrónicos en una base de datos y luego procesarlos usando otro script (por ejemplo, usando un trabajo cron). De esta forma, no tienes que esperar al marco de correo electrónico subyacente.

Otra cosa, si phpmailer es lento puede deberse al programa de correo subyacente (sendmail, postfix, etc.) está configurado incorrectamente.

+1

Gracias. En nuestro caso, implementamos la siguiente solicitud de curl asincrónico a un script php cuyo único deber es enviar correos electrónicos. http://stackoverflow.com/questions/962915/how-do-i-make-an-asynchronous-get-request-in-php – Haluk

+0

Su bienvenida. Gracias por el enlace a su solución, esa es una forma ordenada de resolverlo :) – CodeTower

+1

PHP admite multi-threading y también multiprocesamiento a través de extensiones bien conocidas. Supongo que eso es lo que querías decir de forma nativa, si es así, entonces conectarte a la base de datos también necesita la extensión adecuada y muchas otras cosas. Tenga en cuenta que la extensión pthreads es muy conocida y muy sencilla de utilizar –

0

Si estás en Linux, puede poner su script php en un comando exec y lanzarlo en el fondo (poner & al final del comando) y el modo silencioso (2> & 1>/dev/null)

Cuestiones relacionadas