Python automx2, its database and its automx_rows tool go; the container keeps its name, network and port, gains an http health.
42 lines
3.2 KiB
Plaintext
42 lines
3.2 KiB
Plaintext
What mailu's autoconfiguration module (automx2 2021.6, container mailu-automx on novox, Werkzeug/3.1.9 Python/3.9.5)
|
|
answers to the requests mail clients make (R4d step AMX-1, issue 1630, ADR 0480).
|
|
|
|
Captured 2026-10-21 between 13:58:25 and 13:58:52 (CEST; the Date headers said 11:58 GMT) with the mesh tool
|
|
shanks/netcheck.netcheck_request, called from shanks, through the names clients use (autoconfig.novox.be,
|
|
autodiscover.novox.be, automx.novox.be: HTTPS, the mesh's route), no ssh. A redirect is reported, never followed.
|
|
Mail domain served: novox.be. Mailbox used: jochen@novox.be; unknown domain: nobody@unknown.example.
|
|
|
|
Each capture is four files with the same stem:
|
|
<stem>.request method and URL, then the request headers sent, then (after a blank line) the body sent
|
|
<stem>.status the status line
|
|
<stem>.headers the response headers, sorted by name, without Date (it changes on every request)
|
|
<stem>.body the response body, byte for byte (Content-Length in .headers equals its size)
|
|
The files were written from the tool's answers by a script (not by retyping each by hand); the tool returns JSON, so
|
|
a later capture that wants exact bytes needs a tool that writes the answer to a file.
|
|
|
|
A fixture is not the bytes on the wire in four ways (issue 1701):
|
|
- Date is left out of .headers (it changes on every request).
|
|
- .headers are sorted by name.
|
|
- .status holds the tool's status line without the protocol (the tool reported "HTTP/1.1" apart).
|
|
- Header names are as the tool's Go HTTP client gives them (canonical case, after the mesh's route), not as
|
|
automx wrote them.
|
|
|
|
What the answers show (read, not guessed):
|
|
- GET /mail/config-v1.1.xml?emailaddress=... answers 200 application/xml on all three names; same body on each.
|
|
- The incoming (IMAP) server has an EMPTY hostname (<hostname />), port 143, STARTTLS. The outgoing server is
|
|
mail.novox.be:587 STARTTLS. Cause (from reading the module, not from the database): automx/files/add-domains:35
|
|
reads AMX_IMAP_SERVER, files/mailu.env:58 sets AMX_IMAP_ADDRESS, so the IMAP name was never written.
|
|
A client given this answer cannot find its IMAP server.
|
|
- POST /autodiscover/autodiscover.xml with a valid request for the served domain answers 500 (the Outlook
|
|
answer for a real mailbox does not work today). Unknown domain: 204 no body. Malformed body: 500.
|
|
No EMailAddress element: 400 "Missing request argument "EMailAddress"". GET: 405 with Allow: POST, OPTIONS.
|
|
The path is case sensitive (/Autodiscover/Autodiscover.xml is 404).
|
|
- GET /mobileconfig?emailaddress=... redirects (308) to /mobileconfig/?emailaddress=...; for the served domain that
|
|
answers 400 with no profile; unknown domain 204; no emailaddress 400.
|
|
- GET / on autoconfig answers 200 with a small HTML page linking to an example address.
|
|
- The database rows behind the answers were read once with the tool automx_rows (mailu, issue 1630 AC4), which
|
|
ran sqlite3 read-only inside mailu-automx. The tool is retired with the database (ADR 0480 clause 10, issue
|
|
1700), so nothing reads the rows any more; the answers above are what they gave.
|
|
- The Go program that replaced automx2 answers these requests as they are captured here, but for what
|
|
DIFFERENCES lists.
|