From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id AC7531F55B; Wed, 13 May 2020 19:31:44 +0000 (UTC) Date: Wed, 13 May 2020 19:31:44 +0000 From: Eric Wong To: "Eric W. Biederman" Cc: meta@public-inbox.org Subject: Re: I have figured out IMAP IDLE Message-ID: <20200513193144.GA9299@dcvr> References: <87eeyvmx74.fsf@x220.int.ebiederm.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <87eeyvmx74.fsf@x220.int.ebiederm.org> List-Id: "Eric W. Biederman" wrote: > > A few days ago I stumbled upon this magic decoder ring for IMAP. > The "Ten Commandments of How to Write an IMAP client" > > https://www.washington.edu/imap/documentation/commndmt.txt That URL already expired, fortunately archive.org has it: https://web.archive.org/web/20191029013002/https://www.washington.edu/imap/documentation/commndmt.txt.html > The part I was most clearly missing was that for IMAP it is better to > open multiple sockets (one per mail folder on the server) than it is to > switch between folders with the same ssl socket. > > The core loop of my imap code now does: Is your stuff based on Mail::IMAPClient still working well? I'm starting to integrate Mail::IMAPClient support into public-inbox-watch, but not sure how to go about with automated test cases... I guess it's reason to implement a read-only IMAP server along the lines of public-inbox-nntpd :>