Our users have been complaining about activation emails taking a while to be received. After digging around, we discovered that about 50% of users get the emails instantly and the other 50% take between 5 mins and 2 hours, which is unacceptable.
We determined that WordPress was sending emails at a rate of ~20+ emails/sec and Godaddy’s threshold is 4 emails/sec, which I think is causing this problem.
Is there a way for me to limit stagger the emails out a bit more? Are there plugins or settings I can adjust to resolve this?
A possible workaround depending on your level of coding knowledge:
You could use the Transients API. Simplified: It adds an Option with an expiration time.
Then you could hook into the
phpmailer_init
-action and update the transient value with your new email. If the time expired, you could send the previously added mails out and then add the ones that are above 4.Sorry, no code in detail as it’s more a server/hosting question than a wordpress one.
This is really a server question. It sounds like you need a VPS in order to set your own php and SMTP configs to handle the email load.
Edit: Or offload your SMTP traffic to another server without limits, as pointed out by Sneek above.