• v0.1.0 8e80f5fb80

    v0.1.0
    All checks were successful
    Release / build-and-release (push) Successful in 2m27s
    Stable

    ozzt released this 2026-10-10 08:42:34 +02:00 | 168 commits to main since this release

    Signed by ozzt
    GPG key ID: 35441C4ED2E53204

    v0.1.0

    First release of Gomail, a local authenticated mail daemon (gomaild) and CLI
    (gomailctl) for IMAP and SMTP accounts.

    Highlights

    • Add IMAP/SMTP accounts with encrypted credentials, connectivity tests, and
      incremental background synchronization after an initial full-history
      download.
    • List folders and cached messages with read, unread, flagged, answered,
      draft, and has_attachment filters, date or unread sorting, and cursor
      pagination.
    • Read cached messages as preferred text/plain with a readable HTML fallback,
      inspect decoded headers and attachment metadata, and list or download MIME
      file parts offline.
    • Search cached mail by subject, sender, folder, and received date, with the
      same pagination and limits as message lists.
    • Send UTF-8 text mail through SMTP, with optional attachments, and keep a copy
      in the first folder marked \Sent with --sent-copy.
    • Save drafts through IMAP, list and read them, then send or delete them.
    • Deliver mail through a durable outbox. A send returns a submission ID before
      SMTP runs; unknown SMTP outcomes retry automatically, recorded acceptance
      retries only the remaining draft-cleanup and Sent-copy work, and completed
      submissions stay available by ID with their acceptance and cleanup status.
    • Report daemon, provider, and local storage health with gomailctl doctor, and
      export the OpenAPI 3.1 document with gomailctl spec.

    Deployment Notes

    • This is the first release, so there is no earlier version to migrate from.
    • Release assets are static linux/amd64 and linux/arm64 executables for
      gomaild and gomailctl, plus SHA256SUMS. No container image is built.
    • Put the executables on PATH. The daemon and CLI use the XDG configuration,
      state, and data roots described in the README; the CLI stores its API key in
      ~/.config/gomail/client.json after gomailctl init.
    • gomaild --version and gomailctl --version print the release tag stamped
      into the binary.

    Verification

    • make ci on the release commit: make fmt-check, make spec-check,
      golangci-lint v2.14.0, race-enabled unit and integration tests with coverage,
      the static build, gosec v2.29.0, and govulncheck v1.8.0.
    Downloads