On Sun, May 14, 2017 at 09:33:46AM +1000, Cameron Simpson wrote:
> On 13May2017 17:32, Yubin Ruan <[email protected]> wrote:
> >I am wondering whether it is possible to tell mutt to prefetch mails folder
> >by
> >folder so that I can read mails more quickly without waiting for the
> >"Fetching
> >mails..." every time.
> >
> >I have set up mutt's cache, so it helps a little, but it is still slow
> >because I
> >have to fetch the mails before mutt can cache them.
> >
> >I know there is something like `fetchmail', but, setting up it is tricky,
> >especially with a IMAP server (or, do you have good references?)
>
> The other common solution for IMAP mail accounts is offlineimap, which will
> mirror IMAP accounts to local storage.
>
> Because mutt is single threaded, all "prefetch" arrangements tend to store
> the mail locally. This is several advantages:
>
> - you don't need to configure mutt to access a remote mailbox
>
> - if you're offline all your mail is still there (as of the last update)
>
> - access is _very_ fast, because it is local file access
>
> - if you run a local mail system, you can reply to email even when offline;
> it will queue locally on your machine until there is network access.
> I find this great for train trips. This also means you don't need mutt to
> know SMTP settings; just deliver locally via the "sendmail" command.
>
> The advantage of offlineimap is that (by default) it mirrors your IMAP
> account, keeping a local set of mail folders matching upstream. This means:
>
> - you can still access you imap account (eg through a phone or other device)
>
> - changes you make locally via mutt, such as deletions of moving messages
> or marking them read etc, are pushed upstream to your IMAP account for
> you
>
> Offlineimap _is_ a little tricky to set up, but once running you can let it
> look after the mirroring in the background.
Yes offlineimap _is_ very tricky to setup. It cannot handle non-ascii characters
correctly. I have several folders on the Gamil server whose name is in Chinese.
I setup a `nametrans' in the .offlineimaprc:
nametrans = lambda foldername:
foldername.decode('imap4-utf-7').encode('utf-8')
it works great in the first download, but will throw some encoding/decoding
errors
in the sync afterwards:
'ascii' codec can't decode byte 0xe9 in position 8: ordinal not in
range(128)
I don't know why a software would only support ascii in the 21st century...
--
Yubin