> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruber.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Mail

> Sending and receiving, folders and labels, filters, forwarding, spam training, and the settings for Apple Mail, Outlook and Thunderbird.

## Connecting a mail client

Ruber is a real IMAP and SMTP host, so any client works. There is no plugin and
no bridge.

| Setting     | Value                                        |
| ----------- | -------------------------------------------- |
| IMAP server | `mx1.ruber.me`                               |
| IMAP port   | `993` — SSL/TLS                              |
| SMTP server | `mx1.ruber.me`                               |
| SMTP port   | `465` — SSL/TLS                              |
| Username    | your full address, e.g. `you@yourdomain.com` |
| Password    | your mailbox password                        |

Two things people get caught by. **Your mailbox password is not your Ruber
password** — signing into the web app proves nothing about a mailbox, and the
two are deliberately separate. Set the mailbox password in Settings. And
**submission is 465, not 587**: port 465 uses implicit TLS, so there is no
cleartext phase to strip. If your client offers "SSL/TLS" and "STARTTLS", choose
SSL/TLS.

Private mailboxes are the exception. Their contents are encrypted to a key your
browser holds, so a mail client has nothing it can decrypt. Private is webmail
only.

[Email endpoints](/endpoints) has the rest: every port, the DNS records for your
own domain, the size and rate limits, per-client setup notes, and what to check
when a connection fails.

## Sending

The address you send from is resolved from your session and the database, never
from the message you submit. You can send as any address the account owns —
another mailbox, or an alias that delivers into one — and nothing else. If a
send is refused with "You cannot send from that address", that rule is why.

Attachments ride inside the message: **ten files, 8 MB in total**. Larger than
that and the send is refused before anything is submitted.

**Scheduled send** parks the message and a job releases it. It runs every five
minutes, so a message scheduled for 09:00 leaves between 09:00 and 09:05.

## Receiving

Mail arrives at `mx1.ruber.me` and is accepted only for an address that exists.
An unknown recipient on a domain of yours is refused during the SMTP
conversation, so the sender is told immediately rather than discovering it
later — unless you have turned on catch-all for that domain, which accepts
anything at it.

Every message is scored for spam and scanned for malware before it is filed. A
scanner hit is **refused at SMTP time**, not delivered to Junk: a message we are
confident is malware is one the sender's own server should tell them about.

## Folders, labels and categories

Folders are IMAP folders, so they are the same folders your phone sees. Labels
are IMAP keywords, which means they survive the round trip through any client
that supports them.

Categories are different: a Smart inbox sorts arriving mail into primary,
social, promotions and so on. That is a model reading the message, so it applies
to Smart mailboxes only, and you can correct it — a correction is remembered for
that sender.

## Filters, forwarding and auto-reply

Filters match on sender, subject and recipient, and can file, label, star or
delete. Forwarding sends a copy on; auto-reply answers once per sender.

**These run when your inbox is read, not on a schedule.** The sweep happens as
mail is fetched, and state lives on the messages themselves as IMAP keywords, so
nothing is forwarded or answered twice. The practical consequence: a forward
happens the next time the mailbox is opened, not the instant mail lands.

Forwarded mail is re-sent from your address rather than the original sender's,
because our relay refuses a `From` it has not verified. The original sender goes
into `Reply-To`, so replying at the far end still reaches them.

## Training the spam filter

Move a message into Junk and the classifier learns it as spam. Move it out and
it learns the opposite. This works from any client, because it is the IMAP move
itself that triggers it — not a button in our webmail.

## Search

Keyword search runs over an index of your mail and is always available.

Semantic search is added on top where it is configured: it finds messages by
meaning as well as words, for Smart mailboxes only. Where it is not configured,
search silently falls back to keyword — the results are narrower, and nothing
tells you so.

## Your own domain

Add the domain, publish the DNS records shown, and Ruber checks them every
fifteen minutes. Until the records verify, the domain will not accept mail —
the mail plane only accepts for domains in a verified state, which is what stops
someone claiming a domain they do not own.

You need MX pointing at `mx1.ruber.me`, plus SPF, DKIM and DMARC records. All
four are generated for you.
