<<< Date Index >>>     <<< Thread Index >>>

Re: pop-last=yes isn't working?



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Saturday, April 18 at 03:29 PM, quoth Russell Urquhart:
> I am accessing my pop via smtp and everything is working fine.

???

That sentence is very hard to understand. Your pop? It either sounds 
like you said "I'm accessing my http via gopher and..." or "I'm 
accessing my soda via email and..."

> Whenever i download mail, it asks if i want to delete them from the 
> server. If i don't the next time i check, mutt has downlaoded them 
> again. If i DO remove them from the server, my phone, or web access 
> cannot find those mails.

Sure, that makes sense. This problem is a large part of the motivation 
behind the development of the IMAP protocol, as an alternative to the 
POP3 protocol. POP3 is not designed to make it convenient to leave 
messages on the server and access them from multiple locations.

> I read through the docs and set the pop_last = yes, thinking this would 
> force mutt not to redownload messages it already has downloaded.

Generally, mutt should avoid downloading messages it knows about... 
but I don't know how good mutt's POP3 UIDL support is. If it has 
broken UIDL support, then yes, $pop_last would help. Or, I should 
rephrase that: COULD help.

> When i tried this however, it doesn't seem to make difference.

Pay close attention to the phrasing of the documentation:

     pop_last
         Type: boolean
         Default: no

         If this variable is set, mutt will **TRY** to use the "LAST"
         POP command for retrieving only unread messages from the POP
         server when using the <fetch-mail> function.

(emphasis added)

The reason it says *TRY* rather than simply asserting that this is 
what mutt WILL do is because not all POP servers *support* the LAST 
command. It was a command that existed in older versions of the POP 
protocol, but was removed in November 1994 by RFC 1725. Some servers 
still support it, but most don't, and they aren't required to support 
it.

If you're wondering why it was removed, consider this: the LAST 
command assumes that messages are always read in order, from lowest to 
highest, and that all remote clients have the same state. These 
assumptions are rarely (if ever) true, particularly that last one. For 
example, if some messages are read and some are unread, all mixed 
together, which message number should the LAST command return?

The alternative is to use POP3's UIDL mechanism. Essentially, every 
mail has a unique number (called a UIDL) which never changes as long 
as the message is still stored on the server. POP clients can keep 
track of which UIDLs they have downloaded and which they haven't, and 
thus know which messages have and haven't been read already.

This technique ALSO has a problem, conceptually, which is that every 
client then has a different idea of which messages have been read: 
only those read locally count as "read".

The only real solution is to use the IMAP protocol instead of the POP3 
protocol... not that everyone has the *choice*, but the point is: 
you're dealing with *the* fundamental problem of the POP3 protocol 
(aka "access from multiple clients").

Does that help?

~Kyle
- -- 
Authentic treachery is found when we abandon ourselves, becoming deaf 
to the whispers of our spirits and blind to the powerful potential 
therein.
                                             -- Joaquin Mariel Espinosa
-----BEGIN PGP SIGNATURE-----
Comment: Thank you for using encryption!

iEYEARECAAYFAknqRr8ACgkQBkIOoMqOI16xVQCbBltnsIz4cQQSHUyOk4pq2fnZ
TmgAnRMxEop2yS6hNzkN/nfPEow+fEoQ
=9zg4
-----END PGP SIGNATURE-----