My email lands in spam

Last verified

Mail you send from your own domain reaches people, but lands in their spam or junk folder. Receiving servers decide that mostly from your domain's DNS, and we check that DNS for you.

Why it happens

Before trusting a message, the receiving server asks your domain's DNS three questions:

  • SPF: is this server allowed to send mail for the domain?
  • DKIM: is the message signed with the key the domain publishes?
  • DMARC: what does the domain want done with mail that fails those checks?

A missing or wrong answer makes your mail look forged, and it is filtered. The usual causes are a DKIM record that was never added, two SPF records instead of one, or an SPF record from your old provider that does not include us.

Fix it

1. Read the Deliverability check

Open Email. In the Delivery column, the mark after each domain's mail state sums up its email authentication; hover over it for the summary and a mark per record, for example "2 of 4 email authentication records need attention".

For an email-only domain, choose it to open its Deliverability section. Each record (MX, SPF, DKIM, DMARC) shows what public DNS answered (Found), what we expect (Expected, with a copy button) and a status:

Status What to do
Pass Nothing.
Missing Nothing is published at that name. Add the Expected value.
Wrong value Something is published, but not what works. See below for the record.
Not known The lookup failed at the last check. Wait for the next one.
Not checked yet We have not checked this domain yet.

The check runs on a schedule, and the section shows when it last ran. After you fix a record, the next check shows it.

2. Fix the record that fails, in this order

  1. DKIM. Add a TXT record at mail._domainkey with the Expected value, copied in full. Wrong value means the key published there is not the one our mail server signs with: replace it.

  2. SPF. Keep one record starting v=spf1. Two SPF records are an error, and receivers then treat the domain as having no SPF at all. Use the Expected value: it is your existing record with ours merged in, so mail you send from elsewhere keeps working. With two records, it is built from the first one: merge anything the other one allowed, then delete it.

    SPF shows Pass only when the record really lets our mail server send. A bare mx in it allows whatever your domain's MX points at, so it counts only while MX points at us; a bare a counts only when your domain's own address is our mail server. If your MX still points at your old provider, SPF shows Wrong value and Expected names our mail server by name instead. Fixing MX (the first record in the list) fixes both. When the MX lookup itself failed, SPF shows Not known too.

  3. DMARC. One TXT record at _dmarc. With none, the Expected column suggests a policy to start with. The policy itself is your choice. More than one DMARC record makes receivers ignore DMARC entirely.

If the domain's DNS is at veldhost, we publish these records ourselves when you create a mailbox, so they normally pass. Records you edit by hand in the DNS editor can still break them.

Step-by-step instructions for each record are in Verify your domain for email.

3. Mail sent by your website

If the mail in spam comes from your website (a contact form or a shop), the records above only help when it is sent through your mailbox. Generic advice, not specific to veldhost: set your site's mail plugin or framework to send over SMTP with a mailbox's address and password, using these settings:

Setting Value
Username your full address (hello@example.com)
Password the mailbox password
Incoming IMAP · imap.veldhost.eu · port 993 · SSL/TLS
Outgoing SMTP · smtp.veldhost.eu · port 465 · SSL/TLS (or port 587 · STARTTLS)

4. Everything passes, and it still lands in spam

Content and reputation matter too, and no record fixes those. Generic advice: ask the recipient to mark the message as not spam, avoid sending mainly links or attachments to people who do not know you, and send bulk mailings through a dedicated newsletter service rather than a mailbox.

Still stuck?

Your AI assistant can read the records a domain still needs with get_mail_domain. If every record shows Pass and mail to one provider keeps landing in spam, contact us with the recipient's provider and the time you sent a test message.

Stuck? Contact support — replies within one business day.