4 ms·
Learning about IMAP - This does not support gmail because per the included checker app: Password: 2025/10/16 15:43:03 Connecting to imap.gmail.com:993... 2025/
by ShellackGobln7 1y ago
Learning about IMAP - This does not support gmail because per the included checker app:
Password: 2025/10/16 15:43:03 Connecting to imap.gmail.com:993...
2025/10/16 15:43:03 Connected successfully
2025/10/16 15:43:03 Logging in as user@gmail.com...
2025/10/16 15:43:03 Logged in successfully
2025/10/16 15:43:03
Server capabilities:
2025/10/16 15:43:03 - ENABLE
2025/10/16 15:43:03 - APPENDLIMIT=35651584
2025/10/16 15:43:03 - IDLE
2025/10/16 15:43:03 - NAMESPACE
2025/10/16 15:43:03 - ID
2025/10/16 15:43:03 - XLIST
2025/10/16 15:43:03 - UIDPLUS
2025/10/16 15:43:03 - ESEARCH
2025/10/16 15:43:03 - UTF8=ACCEPT
2025/10/16 15:43:03 - CHILDREN
2025/10/16 15:43:03 - CONDSTORE
2025/10/16 15:43:03 - LIST-EXTENDED
2025/10/16 15:43:03 - LITERAL-
2025/10/16 15:43:03 - UNSELECT
2025/10/16 15:43:03 - QUOTA
2025/10/16 15:43:03 - MOVE
2025/10/16 15:43:03 - LIST-STATUS
2025/10/16 15:43:03 - SPECIAL-USE
2025/10/16 15:43:03 - IMAP4rev1
2025/10/16 15:43:03 - X-GM-EXT-1
2025/10/16 15:43:03 - COMPRESS=DEFLATE
Checking for required capabilities:
UIDPLUS: SUPPORTED
NOTIFY: NOT SUPPORTED
CONDSTORE: SUPPORTED
QRESYNC: NOT SUPPORTED
Some required capabilities are missing
- WhyNotHugo 1y agoIIRC gmail doesn't support any capabilities from after ~2003. In order to synchronise with this kind of server, you need to list UIDs and Flags from all mailboxes and perform a full comparison of which items changed. There's no NOTIFY, so you need to do this periodically. This requires substantially more network and processing, and an entirely different application design. Such a design cannot immediately synchronise new entries either. ImapGoose doesn't cover this kind of scenario, there are plenty of existing tools that can synchronise legacy servers already.
- ShellackGobln7 1y agoHere's a nix flake for v0.2.0 { description = "IMAP to Maildir synchronization tool"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; in { packages = { default = pkgs.buildGoModule { pname = "imapgoose"; version = "0.2.0"; src = pkgs.fetchFromSourcehut { owner = "~whynothugo"; repo = "ImapGoose"; rev = "v0.2.0"; hash = "sha256-+LHj4scdMDBOJ0f04IEeVVZSLEJQSQSndbtHEjN6kLs="; }; vendorHash = "sha256-nD2KgBWmzkTQZHwH/IaGVbhIC2zR4VYdoUTocL0cP+A="; subPackages = ["cmd/imapgoose" "cmd/capcheck"]; ldflags = ["-s" "-w"]; postInstall = '' install -Dm644 imapgoose.1 -t $out/share/man/man1/ install -Dm644 imapgoose.conf.5 -t $out/share/man/man5/ install -Dm644 LICENCE -t $out/share/licenses/imapgoose/ ''; meta = with pkgs.lib; { description = "IMAP to Maildir synchronization tool"; homepage = "https://git.sr.ht/~whynothugo/ImapGoose"; license = licenses.isc; mainProgram = "imapgoose"; }; }; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ go gopls gotools golangci-lint ]; }; } ); }