Control panels

Plesk: create email accounts and configure the mail server

Create mailboxes, aliases and autoresponders in Plesk, then publish the MX, SPF, DKIM and DMARC records that make your mail deliver.

BeginnerLinux server6 min read

To create an email account in Plesk, open the domain's Mail page, click Create Email Address, and fill in the mailbox name and password. The second half of the job is DNS: until the MX, SPF, DKIM and DMARC records for your domain point at the server, mail will bounce or land in spam. This guide covers both halves, in the Plesk UI and from the command line.

Before you start

You need:

  • A Linux VPS with Plesk installed and a domain already added as a subscription. If Plesk is not installed yet, follow How to install Plesk on a Linux VPS.
  • Access to DNS for the domain — either Plesk's own DNS server or the registrar or third-party DNS provider that hosts your zone.
  • SSH root access if you want to use the Plesk CLI (plesk bin mail).
  • Mail management enabled in Plesk: go to Tools & Settings > Mail Server Settings and confirm mail management is switched on for the server.

Plesk installs and manages Postfix and Dovecot on Linux, so you do not install a mail server by hand. You do, however, own the DNS records and the reverse DNS entry, and those are what most delivery problems come down to.

Note: Reverse DNS (PTR) is set at your VPS provider, not in Plesk. Ask them to point the PTR for your IP at mail.example.com before you send any bulk mail.

Create an email account in Plesk

  1. Log in to Plesk and go to Websites & Domains.
  2. Click Mail under the domain you want the address on.
  3. Click Create Email Address.
  4. Enter the mailbox name (the part before the @), then set a strong password. You can also set a mailbox size limit here.
  5. Click OK. The mailbox appears in the list and is ready for IMAP and POP3.

The same thing from the CLI:

Bash
plesk bin mail --create user@example.com -passwd 'Str0ng-Passw0rd' -mailbox true -mailbox-quota 2048

Confirm the mailbox exists and check its settings:

Bash
plesk bin mail --info user@example.com

Client settings are standard: IMAP on port 993 with SSL/TLS, SMTP on port 587 with STARTTLS, username is the full address. Use mail.example.com as both hostnames once DNS is in place.

Add aliases, forwarders and autoresponders

Open the mailbox and use the tabs at the top.

Aliases let one mailbox receive several addresses — for example sales@example.com and info@example.com both landing in one inbox. Add the alias name, leave the address as the target mailbox, and save.

Forwarding sends a copy of every message to another address. Use it for a shared inbox or a personal account, but keep a mailbox copy if you want a record on the server.

Autoresponder sends an automatic reply. Set the subject and message, then optionally restrict it to a date range so it stops on its own.

From the CLI:

Bash
plesk bin mail --update sales@example.com -autoresponder true \
  -autoresponder-subject "We have received your message" \
  -autoresponder-text "Thanks for writing in. We reply within one business day."

Flag names differ slightly between Plesk versions, so run plesk bin mail --help on your server and match the exact options before scripting this.

Set up DNS records for mail delivery

Four record types do the work. Replace 203.0.113.10 with your VPS IP and example.com with your domain.

  • A record: mail.example.com → 203.0.113.10
  • MX record: example.com → mail.example.com, priority 10
  • SPF (TXT on the root): v=spf1 +a +mx -all
  • DMARC (TXT on _dmarc): v=DMARC1; p=none; rua=mailto:postmaster@example.com

For DKIM, enable signing in Tools & Settings > Mail Server Settings, then copy the public key Plesk generates into a TXT record at the selector it shows (commonly default._domainkey). Plesk displays the exact name and value — paste them as-is.

Verify what the world actually sees:

Bash
dig +short MX example.com
dig +short TXT example.com
dig +short TXT default._domainkey.example.com
dig +short TXT _dmarc.example.com

Warning: Changing MX records redirects all mail for the domain. If the domain already receives mail somewhere else, migrate or copy those mailboxes first, or messages sent during the change will be lost.

Start DMARC with p=none so you only collect reports, then tighten the policy once SPF and DKIM pass consistently.

Check it works

Send a message from an external account (Gmail, Outlook, anything outside your server) to the new mailbox, then:

  1. Confirm it arrives in webmail or your mail client.
  2. Reply from the mailbox and confirm the reply lands in the external inbox, not the spam folder.
  3. Check the SMTP banner and TLS:
Bash
openssl s_client -starttls smtp -connect mail.example.com:25 -servername mail.example.com
  1. Watch the mail log while you send a test:
Bash
tail -f /var/log/maillog

On Debian and Ubuntu the log is /var/log/mail.log instead. Look for status=sent on outbound and a clean delivery line on inbound.

Troubleshooting

  • Mail bounces with "connection refused" or times out — the MX record points at the wrong hostname, or your provider blocks inbound port 25. Check dig +short MX example.com and ask your provider to open port 25.
  • Messages land in spam — SPF, DKIM or DMARC is missing, or the PTR record does not match mail.example.com. Publish all three records and request the PTR from your VPS provider.
  • IMAP login fails with "authentication failed" — wrong password, wrong port, or the mail service is stopped. Check systemctl status postfix and systemctl status dovecot, then reset the password in Plesk.
  • Autoresponder never fires — it is disabled, or the schedule window has already expired. Re-open the mailbox, go to Autoresponder, and clear the date range.
  • DKIM shows as failing in a test — the TXT record was published at the wrong selector or with line breaks. Copy the value from Plesk again and check it with dig +short TXT default._domainkey.example.com.

Next steps

Was this guide helpful?

Still stuck?

Ask MdmHost AI for a quick answer, or open a ticket and our team will take a look. We are here 24/7.