phpemailxamppshared-hostingworker-process

send email in background process in php


I want to send a welcome email when a user registers in my app. When a user registers he gets redirected to his profile page. I tried sending email while user creation but the email() takes 7 seconds to send email, and the page waits till then and then redirects the user to profile after 7 sec.

This is not desired. I want to redirect user as soon he registers, and send an email along the process. It takes 7 sec don't know why. i tried it online on godaddy and hostgator account as well as on my localhost.

BTW: i am using PHPMailer to send email.

How can can i make a standalone process which on invoke calls my sendMail.php with email $_POST[] parameters {to, subject, body}.

i though ajax call will do the trick, but as soon as my page redirects from registration to profile, the email script stops. I tried this code:

<script language="JavaScript">
    $.post( "sendMail.php", { to: "$to", subject: "$subject", htmlBody: "$htmlBody", altBody: "$altBody" } );
location.href=profile.html
</script>

Please help, i searched a lot but they work on shell which i am not, and other solutions were unix/linux based. i want to make it work on xampp as well as godaddy linux shared hosting, with NO ssh access.


Solution

  • You could use Mail_Queue, which is a job queue specifically for sending emails, or utilise Zend_Queue [ZF1, ZF2] to write something customised to work with PHPMailer. You might even consider using Gearman.