Email on separate thread in php Email on separate thread in php multithreading multithreading

Email on separate thread in php


As pointed out, PHP doesn't have multithreading abilities, but it does have multi-processing functionality. You can create and call a second PHP that the first one would call to process the email. This script would need to be able to run on the command line.

exec('nohup php emailscript.php >/dev/null 2>&1 &');

It is very important to have the nohup, and everything after it. What that is doing is putting the process in the background and redirecting all output. Otherwise PHP will wait for it to finish and return something. The nohup will make sure the script isn't killed by the OS when the parent calling process ends.

You do need to somehow pass the email information to the script. You can put the information in a database and pass it a record ID, pass the information as parameters, or a number of other options.


I believe you want to execute an ob_flush() to send the data back to the client and allow your PHP script to continue executing. Note that you must be done with sending things back to the client, as you can't send any more after the ob_flush().