[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What does “remove” mean?



 Can I be "removed" from this list please?

(remove means delete)

On 08/15/2010 08:04 AM, David Maus wrote:
David Abrahams wrote:

Especially, what does it mean in the case where the pattern matches
"^-", i.e., an NNTP folder.
The original message will be deleted, so for nntp it is putting the
message in the killfile:

,----
| (luna-define-method elmo-folder-delete-messages ((folder elmo-nntp-folder)
| 						 numbers)
|   (elmo-folder-kill-messages folder numbers)
|   t)
`----
Hmm, I notice that the concept of “killed” messages isn't documented
anywhere.  Dispose functionality aside, does WL support a killfile for
all kinds of folders, or just for NNTP?
For all kinds of folders (grep "killed" elmo/*el).

You might refer to the /process/ of deleting messages that invokes
flagging them with a special flag \Deleted.
Your use of “process” and “invoke” in the sentence above don't make
any sense to me, leaving me a bit confused.
In IMAP messages are deleted in two steps: 1. Mark them
\Deleted, 2. Remove them from the mailbox (delete-expunge model).

Messages that are flagged this way are always
expunged:

  - directly on the EXPUNGE command

  - indirectly by a CLOSE command on a mailbox opened read/write
I don't see how that can be true...  unless read/write refers
*only* to the ability to remove messages from the mailbox, and is
totally independent of the ability to add messages and set flags.
No, read/write means... read/write.

RFC 3501:

,----
| 6.4.2.  CLOSE Command
|
|    Arguments:  none
|
|    Responses:  no specific responses for this command
|
|    Result:     OK - close completed, now in authenticated state
|                BAD - command unknown or arguments invalid
|
|       The CLOSE command permanently removes all messages that have the
|       \Deleted flag set from the currently selected mailbox, and returns
|       to the authenticated state from the selected state.  No untagged
|       EXPUNGE responses are sent.
|
|       No messages are removed, and no error is given, if the mailbox is
|       selected by an EXAMINE command or is otherwise selected read-only.
|
|       Even if a mailbox is selected, a SELECT, EXAMINE, or LOGOUT
|       command MAY be issued without previously issuing a CLOSE command.
|       The SELECT, EXAMINE, and LOGOUT commands implicitly close the
|       currently selected mailbox without doing an expunge.  However,
|       when many messages are deleted, a CLOSE-LOGOUT or CLOSE-SELECT
|       sequence is considerably faster than an EXPUNGE-LOGOUT or
|       EXPUNGE-SELECT because no untagged EXPUNGE responses (which the
|       client would probably ignore) are sent.
|
|    Example:    C: A341 CLOSE
|                S: A341 OK CLOSE completed
`----

This problem is also discussed in RFC4549, 4.2.4.
   I
have used IMAP clients that will give me a choice of whether to simply
mark messages as \Deleted or actually expunge the messages when I
delete them in the client.  I could move new messages into those
folders and set flags without causing an EXPUNGE.
It is possible to deselect a mailbox without a CLOSE and its
consequences: E.g. select the current mailbox read-only (EXAMIME) and
then call CLOSE, SELECT another mailbox, or use the UNSELECT
extension (if available).

HTH,
   -- David