SQL-based storage backend for go-imap v2
MIT License
Bot releases are hidden (Show)
This released is lined up with 0.5.0 release of maddy mail server. go-imap-sql is still usable as a standalone go-imap backend but with some limitations.
Add IMAP SORT support
Add IMAP THREAD support
Add IMAP NAMESPACE support
Add ability to override mailbox/flags on per-user basis in delivery interface
Published by foxcpp over 4 years ago
⚠️ This release includes schema changes that can't be applied to existing databases. Manual export-wipe-import is required.
⚠️ Minimal required Go version is increased to 1.13
This release includes changes accumulated over a long period. This release is lined up with maddy 0.1 release. go-imap-sql is developed for use in maddy mail server but remains usable as a standalone go-imap backend.
Published by foxcpp over 5 years ago
⚠️ Manual intervention required while upgrading databases due to the critical bug in previous versions.
Patch release containing several bug fixes. Note that some fixed bugs are critical, so it's best to update ASAP.
v0.2 and v0.3 had broken schema_version logic leading to absence of schema_version table in newly created databases. Basically, execute the following SQL statements on go-imap-sql DB and you will be fine.
CREATE TABLE schema_version (version INTEGER NOT NULL);
INSERT INTO schema_version VALUES (3);
Published by foxcpp over 5 years ago
This release is a small incremental improvement over 0.2, it does not introduce many new features, but rather cleans some things up and fixes some bugs.
Also, I think overall go-imap-sql is stable enough to be considered "beta" instead of "alpha".
Published by foxcpp over 5 years ago
⚠️ DB schema is incompatible with 0.1
⚠️ Backwards-incompatible interface changes present (due to go-imap update)
The main focus of this release is to improve performance to a reasonable level and to fix some conformance problems.
I'm really sorry for the inconvenience. I accidentally left imapsql-ctl binary in the repository even before 0.1 and I don't want repo to weight 18MB. So I decided to rewrite Git history, removing this file from all commits. All references (including 0.1 tag) are updated to point to new commits. go.sum checksum is invalidated. Only last commit is GPG-signed.
imap
subpackage is merged with root package (52508125ffec458484b64cc4a4af7826e986d6d8)imapsql.NewBackend
is renamed to imapsql.New
(1039e4491fc7d22665639b9308f67c61005fb324)Get*User
functions are renamed (a43a1681d51eab7254291de25472b7cfa4f7afa5)Backend.DB
and Backend.Opts
are exported now (a1937ab429081edd89dd27782912b6c44f309ee6)go-imap-sql 0.1 does not create the version tag required for schema upgrade to work correctly. You need to execute the following SQL statements to fix it.
CREATE TABLE schema_version ( version INTEGER NOT NULL );
INSERT INTO schema_version VALUES (1);
Then you need to run any action with imapsql-ctl with --allow-schema-upgrade option. Server should not be running during it.
imapsql-ctl --driver ... --dsn ... --allow-schema-upgrade users list
Published by foxcpp over 5 years ago
This is the basic implementation of a working go-imap backend with several IMAP extensions supported.
This release is a small step out of many on the road to the 1.0 release. I decided to release 0.1 as a base point of reference and allow people to actually rely on some frozen code base instead of always moving 'dev' branch.
Initially, the project was named go-sqlmail because I thought it was necessary to implement special support to handle SMTP delivery. Now it is renamed to go-imap-sql because all SMTP-related features can be implemented outside of this project.
Currently, maddy uses go-imap-sql 0.1 with SQLite by default as both storage and authentication backend.