{{/* Wide so the .split pairs fill the column rather than the 48rem reading measure (same pattern as Status). */}} {{define "wide"}}wide{{end}} {{define "content"}}

{{.Domain.Name}}

{{template "back_link" (back "/domains" "All domains")}} {{if .Flash}}
{{.Flash}}
{{end}} {{if .RateLimitErr}}
{{.RateLimitErr}}
{{end}} {{if .NewCred}}

New application password

Shown once only and not stored. Copy it now — if it is lost, regenerate a new one.

{{.NewCred.Login}}
{{.NewCred.Password}}
{{end}} {{/* Two rows of two checks (.check-cols). */}}

DNS status {{.DNS.Overall}}

Cached a few minutes — use Re-check after publishing.

{{.Record.Name}}
TXT
{{if .DNS.DKIM.Records}} {{range .DNS.DKIM.Records}}{{.}} {{end}} {{end}} {{if ne .DNS.DKIM.Status "ok"}}

{{.DNS.DKIM.Detail}}

{{end}}
{{.Domain.Name}}
TXT
{{if .DNS.SPF.Records}} {{range .DNS.SPF.Records}}{{.}} {{end}} {{end}} {{if ne .DNS.SPF.Status "ok"}}

{{.DNS.SPF.Detail}}

{{end}}

Shallow check: literal address only, no include: / redirect=.

{{.DMARCName}}
TXT
{{if .DNS.DMARC.Records}} {{range .DNS.DMARC.Records}}{{.}} {{end}} {{end}} {{if ne .DNS.DMARC.Status "ok"}}

{{.DNS.DMARC.Detail}}

{{else}}

{{.DNS.DMARC.Detail}}

{{end}}
{{if .DNS.DMARCReportAuth.Status}}
{{.ReportAuthName}}
TXT
{{if .DNS.DMARCReportAuth.Records}} {{range .DNS.DMARCReportAuth.Records}}{{.}} {{end}} {{end}}

{{.DNS.DMARCReportAuth.Detail}}

{{else}}

Not required (no external rua=).

{{end}}

DKIM and SPF records

DKIM

{{.Record.Name}}
TXT
{{.Record.Value}}

Not a secret. Signed with selector {{.Domain.DKIMSelector}}.

SPF

{{.Domain.Name}}
TXT
{{.SPFExample}}

Merge into an existing SPF if the domain already has one — do not publish a second record.

DMARC record

{{.DMARCName}}
TXT
{{.DMARCExample}}
{{if .SameDomainRUA}}

The report address is on this sending domain. SelfPost does not receive inbound mail — use a mailbox elsewhere or wait for in-panel report reception in a future release.

{{end}} {{if .NeedsReportAuth}}

Report authorization

{{.ReportAuthName}}
TXT
{{.ReportAuthValue}}
{{end}}

p=none does not affect delivery. Tighten to p=quarantine then p=reject once reports look clean. Report address is set under Domain settings.

Connection settings

Same for every domain. Authenticate with an application login from below.

{{.Hostname}}
465 — SSL/TLS (implicit){{if .SubmissionEnabled}} 587 — STARTTLS (submission){{end}}

Auth required on every port. The password is shown once at create or regenerate.

{{/* Create form beside connection settings, mirroring "Add a sending domain" above the domains list. */}}

Add an application

{{if .Error}}

{{.Error}}

{{end}}

Password shown once. Login unique across domains; letters, digits, '.', '-' and '_'.

Applications

SASL logins for this domain — wildcard (*@domain) or a fixed address list.

{{if .Apps}} {{else}}

No applications yet. Add one above to get started.

{{end}}

Domain settings

DMARC reports

Default comes from Settings; override per domain here.

Optional level-2 sending rate limit {{if .DomainHasRL}}active{{else}}inactive — level 1 only{{end}}

Level 1 backstop: {{.L1Messages}} messages / {{.L1Window}}s — Settings.

Applies to every client IP on this domain. Leave the message limit empty to use level 1 only.

{{if .DomainHasRL}}
{{end}}

Export domain

Secret file — transfer securely, or encrypt below as .spde.

{{if .ExportErr}}

{{.ExportErr}}

{{end}}
{{template "encryptfields" .}}

Danger zone

Deletes the DKIM key and every application on this domain.

Delete domain
{{end}}