Skip to content

Guarantees ​

What MailKT promises, and what remains your responsibility.

MailKT guarantees ​

AreaGuarantee
ReadsSurvive reconnects. Scans keep their frozen snapshot and UIDVALIDITY integrity.
DownloadsBounded by an explicit byte limit and never silently truncated.
IdentityA location or part reference never resolves to a different message or part.
WatchersAt-least-once delivery with in-collection duplicate suppression and catch-up after reconnects.
SendingNever retried. Outcomes are explicit: ACCEPTED, FAILED or UNKNOWN.
IsolationClosing or failing one mailbox never affects another.
Lifecycleclose() is idempotent and Closed is published exactly once.
PrivacyNo addresses, content or secrets in logs, exception messages or toString().
API surfaceNo Jakarta Mail or Angus types in public packages, enforced by an architecture test.

Your responsibilities ​

AreaYou provide
Token storageDurable, encrypted, atomic TokenStore.
Pending authorizationsAn AuthorizationSessionStore with atomic one-time consume, shared across instances.
CheckpointsPersist only after your processing is durable.
IdempotencyDe-duplicate side effects by account and Message-ID.
Unknown sendsReconcile by Message-ID in the Sent folder before resending.
HTTP routesThe begin endpoint and the OAuth callback route.
Logging backendAny SLF4J 2 implementation.

Released under the MIT License.