Security

How your mail is protected, stated specifically rather than in adjectives.

4. How it is protected

Exactly what is configured today — no more:

Attachment scanning — what it does, and what leaves

The local layer below runs on your inbound mail today, in addition to Amazon SES's own spam and virus scan. The optional third-party engine is a slot that is not configured — see the second bullet.

There are two layers, and they are deliberately told apart:

The verdict rule. A result is one of three things: clean, infected, or unscanned. unscanned exists because the failure that actually infects someone is a system reporting "clean" when nothing looked. With no engine configured, an attachment the local checks did not refuse comes back unscanned, never clean — and the same is true if a configured engine is slow, unreachable, or returns something we cannot read, or if the file is over the size ceiling (10 MB by default), in which case it is not sent to the engine at all. Local checks are not antivirus and this document will never call them that.

Automated spam and phishing classification, and the AI tier

The offline classifier below runs on your inbound mail today and sends nothing anywhere. The AI tier is off unless an Anthropic API key is configured — and by default no key is set, so nothing about your mail leaves our systems. This section describes exactly what the AI tier *would* send if it were ever switched on, so the cost is on the record before that decision.

Again two layers:

Exactly what is sent to the Anthropic API when that tier is on. This is the complete list; there is nothing else in the payload:

FieldWhat it is
subjectYour message's subject line, verbatim, up to 300 characters.
fromThe sender's display name (to 200 characters) and email address (to 200).
replyToThe Reply-To address, if the message had one.
linkHostsHostnames only — up to 25 — from the links in the message. Never full URLs. The path and query of a link are where a per-recipient tracking token lives, and a tracking token identifies the reader, so it never leaves.
localFindingsUp to 12 of the offline classifier's own findings, in words. These quote evidence from the message — the matched phrase, a link's visible text, the sender's display name — so they are message content too, and we are not going to pretend they are only "rule names".
bodyExcerptA bounded plain-text excerpt of the message body, 2,000 characters by default, with every URL inside it reduced to [link:hostname]. Setting the limit to 0 sends no body at all.

Say the cost out loud. That excerpt *is* your correspondent's message content, sent to a third party outside Australia. Reducing URLs to hostnames does not change that: whatever else was written in the first 2,000 characters — names, figures, addresses — goes with it. That is why the tier is off unless a key is deliberately set, why the limit is settable to zero, and why a private mailbox (§4A) is never classified at all. If HAMANI ever enables this tier, this policy and docs/AU-LEGAL-HOSTING.md §4 must be updated first, because sending message content to a US-based API is a cross-border disclosure question, not a configuration change.

No message is ever failed by a classifier. If the AI call times out, errors, is refused, is cut off, or returns something that does not match the required shape, the offline verdict is used instead and it says so in its own reasons. The model is also never allowed to invent a suspicious link: only links genuinely present in the message survive into the result.

And what is not true, stated plainly: