---
title: Send WordPress email from your own domain
description: Stop WordPress sending as user@server and send from an address on your domain instead, using an SMTP plugin and a real mailbox.
sidebar:
  order: 4
---

import { Steps, Aside } from '@astrojs/starlight/components';
import Support from '~/content/partials/support-link.mdx';

If your WordPress site sends mail — contact forms, order confirmations, password resets — you may notice it arrives from something like `user@host.server-host.tld` rather than your own domain.

That's deliberate. PHP's built-in mail function is configured to send as the account that owns the site, which makes it much harder for a compromised script to forge mail as someone else. The side effect is unbranded — and often poorly delivered — email.

The fix is to send through a real mailbox on your domain using SMTP.

<Aside type="tip">
  This also improves **deliverability**. Mail sent through an authenticated mailbox on your domain passes SPF and DKIM checks; mail sent by PHP as `user@server` frequently doesn't, and lands in spam.
</Aside>

## Step 1 — Create a mailbox to send from

<Steps>

1. In cPanel, open **Email Accounts** under the **Email** section.

2. Create an account for the site to send as — `noreply@yourdomain.com` is the usual choice.

3. Use the **password generator** and copy the password somewhere temporarily — you'll need it in a moment, and you won't be shown it again.

4. Set a **mailbox quota**. People reply to `noreply` addresses regardless of the name, and without a quota those replies accumulate against your hosting space indefinitely.

</Steps>

## Step 2 — Install an SMTP plugin

WordPress needs a plugin to route mail through SMTP instead of PHP. Any of the well-maintained ones work:

- [WP Mail SMTP](https://wordpress.org/plugins/wp-mail-smtp/)
- [Easy WP SMTP](https://wordpress.org/plugins/easy-wp-smtp/)
- [Post SMTP](https://wordpress.org/plugins/post-smtp/)

## Step 3 — Configure it

In the plugin's settings, choose the **Other SMTP** / custom option and enter:

| Setting | Value |
| --- | --- |
| **SMTP host** | Your server's hostname (for example `cpanel01.cloud-hosting.io`) |
| **Encryption** | TLS |
| **Port** | `587` |
| **Authentication** | On |
| **Username** | The **full** email address — `noreply@yourdomain.com`, not `noreply` |
| **Password** | The password you generated |
| **From address** | The same mailbox address |

<Aside type="caution">
  Use port **587 with TLS**, or **465 with SSL** if your plugin prefers implicit TLS. Don't use port **25** without encryption — it sends your mailbox password across the network in the clear, and many networks block it outright.
</Aside>

Two details that account for most failures: the username has to be the **whole** address, and the **From** address must match the mailbox you authenticated as. A mismatch gets rejected or treated as spoofing.

## Step 4 — Send a test

Every one of these plugins has a test-email feature. Use it before assuming it works, and send to an address at a different provider (Gmail, Outlook) rather than another mailbox on your own domain — that exercises the path real recipients take.

## Related

- [What are my nameservers?](/cpanel/nameservers/)
- **On WHP?** See [Create an email account](/whp/how-to/create-an-email-account/) — the mailbox part differs, the plugin setup is the same.

## Still stuck?

<Support />
