WordPress uses PHP's mail() function by default, which most inboxes flag as spam or drop outright because it doesn't authenticate against SPF or DKIM records. The fix is to route outgoing mail through actual SMTP with real authentication instead. The fastest path is an SMTP plugin, installed from wp-admin → Plugins → Add New, pointed at either your Flashcloud mailbox or a transactional email service.
If you just need password resets, order notifications, and contact form mail to land reliably, this is a 10-minute fix. No server-side configuration required.
Why PHP mail() fails
When WordPress calls mail(), the message gets handed to the server's local mail transfer agent and sent with minimal headers. It doesn't authenticate as coming from your domain, so receiving mail servers checking SPF and DKIM see a mismatch and either bin the message or reject it outright. This has nothing to do with your hosting being slow or misconfigured. It's just how mail() works everywhere, not only on Flashcloud.
SMTP fixes this because it logs in to a real mail server with a username and password, using a connection that's already set up to authenticate correctly for that domain.
Set up an SMTP plugin
The plugin route works for almost every site and needs no code:
- In
wp-admin → Plugins → Add New, search for an SMTP plugin (WP Mail SMTP and Easy WP SMTP are both common choices). - Install and activate it.
- Run its setup wizard and choose a mailer. Two options work well here:
- Your Flashcloud mailbox. Use an Email Account you've already created for the domain (see the Email Accounts tile in the portal). Host is
mail.yourdomain.com, port465with SSL or587with STARTTLS, and the username is the full email address, not just the local part. - A transactional email service (SendGrid, Mailgun, Postmark, etc.). Better for higher volume or if you want delivery analytics, since these services specialize in inbox placement and give you send logs.
- Your Flashcloud mailbox. Use an Email Account you've already created for the domain (see the Email Accounts tile in the portal). Host is
- Enter the credentials and send a test email from the plugin's test tab.
Once the test email arrives, every WordPress-originated email goes out through SMTP instead of the local mail function: password resets, comment notifications, and WooCommerce order confirmations if you're running a WooCommerce store.
Test before you rely on it
Don't just trust the plugin's built-in test button. Trigger a real-world flow:
- Request a password reset for a test account and confirm it arrives, and check spam if it doesn't show up in a minute or two.
- If you run a store, place a test order and verify the confirmation email fires. See running a WooCommerce store for why order mail specifically matters.
- Check any contact form plugin you use separately, some route mail through their own settings rather than deferring to the SMTP plugin's hook, so verify each form independently.
If you're changing mail configuration, do it on staging first
Swapping mailers or reconfiguring SMTP on a live store or high-traffic site carries a small but real risk. If the test fails mid-swap, you can end up with a window where no mail sends at all: missed order confirmations, missed password resets. If you're not confident the change will go cleanly, test it on a staging copy first, verify the send flow end to end, then apply the same settings to production.
It's also worth taking a fresh backup before touching mail plugins on a store, since some SMTP plugins bundle form or logging add-ons that write to the database. See running a WooCommerce store for the general rule.
When to open a ticket
Most SMTP setup issues are credential typos or the wrong port, and the plugin's error log usually names the exact SMTP response code. If test emails still fail after double-checking host, port, and encryption mode, or if you suspect the domain's SPF or DKIM records aren't matching what your SMTP provider expects, open a ticket from Support → New ticket in the portal. A real person can check your domain's DNS records and mail authentication status directly.