Announcements and discussions for Gnus, the GNU Emacs Usenet newsreader
 help / color / mirror / Atom feed
* pop3 leave on server, then fetch, Expire = delete from server
@ 2002-03-22 22:09 Seth Delackner
       [not found] ` <m3lmchdaaf.fsf@multivac.cwru.edu>
  0 siblings, 1 reply; 7+ messages in thread
From: Seth Delackner @ 2002-03-22 22:09 UTC (permalink / raw)


Is this possible?  I want to Download pop3 messages and leave them on
the server, which is working for me fine in Xemacs using pop3.el.
Then when I delete the message locally I want it to be deleted on the
server. This feature is in Mozilla, Eudora, and Sylpheed, so I'm sure
it can be done.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: pop3 leave on server, then fetch, Expire = delete from server
       [not found]           ` <m3pu0g7j7j.fsf@peorth.gweep.net>
@ 2002-05-01 15:08             ` Paul Jarc
       [not found]               ` <m3elgvfys4.fsf@peorth.gweep.net>
  2002-05-01 18:56             ` Peter Davis
  1 sibling, 1 reply; 7+ messages in thread
From: Paul Jarc @ 2002-05-01 15:08 UTC (permalink / raw)


Stainless Steel Rat <ratinox@peorth.gweep.net> wrote:
> POP does not work that way.  The client never expunges messages.

Sure it does.  QUIT happens to be part of the expunging command, but
that's just a matter of syntax (well, and reconnecting if necessary).

> If the time the server requires to parse your drop is greater than its
> internal timeout (30 seconds by default on many servers) then you will not
> be able to get your mail.

Why would a server need so long to parse it?

> Oh, yeah, if a spool file is locked (ie, the POP server has it open) it
> cannot receive new mail.  Keep it locked long enough by sending keepaliaves
> to the server and your mail will start bouncing.

Not all POP servers use spool files.  (Maildirs require no locking.)
Not all MTAs bounce mail when a spool file is locked.  (Which do?
Leaving the message in the queue and retrying later is a far better
thing to do.)


paul


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: pop3 leave on server, then fetch, Expire = delete from server
       [not found]           ` <m3pu0g7j7j.fsf@peorth.gweep.net>
  2002-05-01 15:08             ` Paul Jarc
@ 2002-05-01 18:56             ` Peter Davis
       [not found]               ` <m3n0vjtwy4.fsf@peorth.gweep.net>
  1 sibling, 1 reply; 7+ messages in thread
From: Peter Davis @ 2002-05-01 18:56 UTC (permalink / raw)


Stainless Steel Rat <ratinox@peorth.gweep.net> writes:

> * "Peter Davis" <pdavis@pageflexinc.com>  on Tue, 30 Apr 2002
> | I could live with an explicit function that expunges all messages that are
> | marked for expiration.
> 
> POP does not work that way.  The client never expunges messages.  All the
> client does is send DELE msg-id commands where msg-id is the sequential
> number of a message in the drop to mark for deletion.  Deletion does not
> actually occour until the client gracefully closes the connection to the
> server with the QUIT command.  If the server does not receive the QUIT
> command from the client it will automatically invoke RSET and remove all
> DELE marks from the drop.

Let me try this again.  Franklin Lee's epop3mail and pop3.el (in
XEmacs) both have the ability to leave messages on the server.  They
record a listing of message IDs in files (.uidls...something) in order
to know which messages have been downloaded.  As far as I can tell,
the messages themselves also contain the message ID and the
mail-source from which the message came.

Suppose that whenever one of these messages is marked as expirable,
gnus also marks the corresponding message ID in the appropriate .uidls
file.  Then, when I want to expunge, I have a function which reads the
.uidls file, connects with the server and deletes those messages which
have been so marked.  Am I missing something?  This doesn't require
anything other than what POP already does.

In fact, Franklin Lee's package also includes epop3-manage-mailbox,
which can connect to a server, display a list of messages on that
server, and allow users to selectively delete those messages (by
marking them and then typing 'x' to delete all marked messages).  I am
not an e-lisp expert, but it seems to me the pieces are already there,
and someone with more know-how could connect them to make the server
expunging "automatic".


> > If the time the server requires to parse your drop is greater than its
> internal timeout (30 seconds by default on many servers) then you will not
> be able to get your mail.  The server will drop the connection before the
> client can acknowledge the results of the STAT command.  This is why leave
> mail on server is Evil Incarnate.  On top of that, nnpop3 needs to be able
> to handle a server side timeout connection close and client reconnect for
> every message being read, with the caveat that the contents of the drop
> will change between sessions as new mail is delivered to it.

The messages would be marked, and then all deleted at once by some
user-invoked function.

> See, I planned out nnpop3 back in 1995.  I knew exactly how to make it
> work.  And then I realized how rock-stupid it would be to write something
> that I -knew- would cause mail to bounce.  POP is totally inappropriate for
> a backend for these reasons.

Well, I never envisioned it as a back end.  I thought it could just be
a new function that expunges messages which have expired.

-pd


-- 
--------
                             Peter Davis
               Funny stuff at http://www.pfdstudio.com
                 The artwork formerly shown as prints
    List of resources for children's writers and illustrators at:
                  http://www.pfdstudio.com/cwrl.html


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: pop3 leave on server, then fetch, Expire = delete from server
       [not found]           ` <m3adrjdidq.fsf@multivac.cwru.edu>
@ 2002-05-01 18:59             ` Peter Davis
  0 siblings, 0 replies; 7+ messages in thread
From: Peter Davis @ 2002-05-01 18:59 UTC (permalink / raw)


prj@po.cwru.edu (Paul Jarc) writes:

> "Peter Davis" <pdavis@pageflexinc.com> wrote:
> > I think most people who want the ability to leave mail on the
> > server aren't looking for a way to permanently manage server-based
> > messages.  They simply want to keep the messages there
> > temporarily, as they go from one machine to another.  A lot of
> > people, like me, have work and person e-mail accounts, on
> > different servers.  At home, I want to be able to fetch and read
> > my work mail, but I want to leave it on the server until I get to
> > the office.  Likewise for reading personal e-mail at the office.
> 
> nnpop3 would still be as useful as the other method in this
> situation.  At home, you'd use your personal pop account as a
> mail-source, and use nnpop3 to access your work mail.  At work, you'd
> use your work account as a mail-source and use nnpop3 to access your
> personal mail.

I'm not sure I see the added value in this.  I might want to
intermingle home and office messages in the same group.

I think what I'm suggesting could be done in a couple of functions,
given what epop3mail already does.  I just don't know enough e-lisp to
be able to write them.


-pd


-- 
--------
                             Peter Davis
               Funny stuff at http://www.pfdstudio.com
                 The artwork formerly shown as prints
    List of resources for children's writers and illustrators at:
                  http://www.pfdstudio.com/cwrl.html


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: pop3 leave on server, then fetch, Expire = delete from server
       [not found]               ` <m3elgvfys4.fsf@peorth.gweep.net>
@ 2002-05-01 20:35                 ` Paul Jarc
       [not found]                   ` <m3it67tw9o.fsf@peorth.gweep.net>
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Jarc @ 2002-05-01 20:35 UTC (permalink / raw)


Stainless Steel Rat <ratinox@peorth.gweep.net> wrote:
> * prj@po.cwru.edu (Paul Jarc)  on Wed, 01 May 2002
>> Sure it does.  QUIT happens to be part of the expunging command, but
>> that's just a matter of syntax (well, and reconnecting if necessary).
>
> That does not qualify as an "expunge" command.  Closing the connection and
> reopening has all of the problems previously mentioned

You mean message numbers changing?  Those would have to be handled
anyway, by associating Gnus article numbers with UIDLs, and
associating UIDLs with per-connection message numbers.  This would
have to be done even without considering deletion.

>> Why would a server need so long to parse it?
>
> When the client has authenticated itself, the POP server calculates the
> size of the drop and counts how many messages are in it.

Ok, but any server that times out the connection while it's waiting
for *itself* to communicate, rather than the client, seems broken to
me.  Which POP servers do this?

> Maildirs have their own problems (like: running out of inodes)

Assuming the filesystem has a fixed inode limit, yes.  Some don't,
such as ReiserFS.

> Maildirs or other lockless delivery schemes may not exist on a server used
> by someone using the hypothetical nnpop3.

So nnpop3 wouldn't necessarily work as well as you would like for some
people.  That doesn't mean it shouldn't exist.

>> Not all MTAs bounce mail when a spool file is locked.  (Which do?

You didn't answer this.  Do you know of any in particular?

>> Leaving the message in the queue and retrying later is a far better
>> thing to do.)
>
> Actually, no, it is not.  Under normal conditions a bounce indicates a
> problem, something not working right, such as a wedged POP process.

There's no way for the delivery process to tell whether the POP
process is wedged.  A delivery process that just happens to run at the
same time as a POP process should not assume permanent failure and
bounce on the first attempt.  Bounces should be generated after
several attempts fail.


paul


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: pop3 leave on server, then fetch, Expire = delete from server
       [not found]                   ` <m3it67tw9o.fsf@peorth.gweep.net>
@ 2002-05-01 22:09                     ` Paul Jarc
  0 siblings, 0 replies; 7+ messages in thread
From: Paul Jarc @ 2002-05-01 22:09 UTC (permalink / raw)


Stainless Steel Rat <ratinox@peorth.gweep.net> wrote:
> * prj@po.cwru.edu (Paul Jarc)  on Wed, 01 May 2002
>> So nnpop3 wouldn't necessarily work as well as you would like for some
>> people.  That doesn't mean it shouldn't exist.
>
> As I said before, I refuse to write code that I -know- will cause people
> who use it to lose mail.

Is anyone asking you to write this?


paul


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: pop3 leave on server, then fetch, Expire = delete from server
       [not found]                       ` <m3pu0eja8o.fsf@peorth.gweep.net>
@ 2002-05-03 13:52                         ` Peter Davis
  0 siblings, 0 replies; 7+ messages in thread
From: Peter Davis @ 2002-05-03 13:52 UTC (permalink / raw)


Stainless Steel Rat <ratinox@peorth.gweep.net> writes:

> * prj@po.cwru.edu (Paul Jarc)  on Thu, 02 May 2002
> | AFAICT, there are no unsafe servers.  There are *unusable* servers,
> | but they are reliably detectable.
> 
> Not always, or not easilly.  qpopper 4 can be compiled such that a
> successful RETR automatically causes the server to silently issue a DELE to
> itself.  "Leave mail on server" will never work for a server compiled that
> way.

In that case, it wouldn't matter whether the user tried to leave mail
on server or not.  Or are you saying that if there's no "leave on
server" capability, users will have no expectation of having their
mail saved, so they will work around that?

I think it seems overly cautious to me to cripple an entire software
product because of the eccentricities of one particular POP server
compiled with some particular set of options.

> > [...]
> | Even with timeouts, it seems that bouncing is the worst that can happen;
> | mail will never be *silently* lost.
> 
> I am not absolutely certain of that.  I have seen Outlook and Eudora
> silently lose entire drops worth of mail, but only when the client has
> "delete message from server after downloading" disabled.  I have been
> unable to determine exactly why it has happened.  That makes me skittish
> about the whole idea.

I've used Eudora for over 7 years, with the "leave on server" option,
getting hundreds of messages per day, and have *never* lost a message
from the server.

Outlook I wouldn't touch with a 10-foot pole anyway.

> > [...]
> | I don't think that's necessary.  There could be a single list of UIDLs
> | associated with Gnus article numbers and marks.  An entry would not be
> | removed until we see a UIDL list from the server that does not contain
> | the corresponding UIDL.  If an article was supposed to be deleted, but
> | was not, then it would still have the 'expire mark later, so it would
> | automatically be DELE'd again.
> 
> You make it sound so simple.
> Try implementing it, and see for yourself that it is not so simple.

epop3mail creates files like

    .uidls.pd.world.std.com

The name of the file gives the exact account information for the
server from which those messages were fetched.  It seems to me that
marking those messages for deletion, and then having a function which
connects to that server, check for, and deletes those messages, should
be do-able.  No?

Right now, I can't even set up gnus to delete from one server and
leave messages on another.  That would at least make gnus usable for
me.  Even with epop3mail (or XEmacs with the mail-lib pop3.el), I
can't do this with gnus.  VM has this capability.

-pd


-- 
--------
                             Peter Davis
               Funny stuff at http://www.pfdstudio.com
                 The artwork formerly shown as prints
    List of resources for children's writers and illustrators at:
                  http://www.pfdstudio.com/cwrl.html


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-05-03 13:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-22 22:09 pop3 leave on server, then fetch, Expire = delete from server Seth Delackner
     [not found] ` <m3lmchdaaf.fsf@multivac.cwru.edu>
     [not found]   ` <m3bsddfwrc.fsf@peorth.gweep.net>
     [not found]     ` <aak14u$d00$1@news.bitstream.com>
     [not found]       ` <m37kmq75l9.fsf@multivac.cwru.edu>
     [not found]         ` <aamdpk$eoc$1@news.bitstream.com>
     [not found]           ` <m3pu0g7j7j.fsf@peorth.gweep.net>
2002-05-01 15:08             ` Paul Jarc
     [not found]               ` <m3elgvfys4.fsf@peorth.gweep.net>
2002-05-01 20:35                 ` Paul Jarc
     [not found]                   ` <m3it67tw9o.fsf@peorth.gweep.net>
2002-05-01 22:09                     ` Paul Jarc
2002-05-01 18:56             ` Peter Davis
     [not found]               ` <m3n0vjtwy4.fsf@peorth.gweep.net>
     [not found]                 ` <m3bsbz8tdo.fsf@multivac.cwru.edu>
     [not found]                   ` <m3y9f3cpx7.fsf@peorth.gweep.net>
     [not found]                     ` <m3r8kuejbz.fsf@multivac.cwru.edu>
     [not found]                       ` <m3pu0eja8o.fsf@peorth.gweep.net>
2002-05-03 13:52                         ` Peter Davis
     [not found]           ` <m3adrjdidq.fsf@multivac.cwru.edu>
2002-05-01 18:59             ` Peter Davis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).