RE: FETCH Failure

2004-09-29 Thread Larry Osterman
Ah, but sequence numbers ARE a session characteristic.  They can only be
considered to be valid in the context of a single session.

That's why there are so many silly rules about when you can change the
session numbers and the consequences of that. Consider the EXISTS and
EXPUNGE responses for example.  EXISTS can be sent at any time - why?
Because EXISTS adds entries to the end of the per-session set of
sequence numbers, and you can always add to the end of an array without
changing the meaning of the existing entries of the array.

On the other hand, EXPUNGE can only be sent at a time when the server
KNOWS the client is not evaluating a sequence number.  Why?  Because the
EXPUNGE response changes the sequence number for every message in the
mailbox FOR THAT SESSION.

Those are the silly, nonsensical rules to which Mark was referring -
they don't make any sense in the context of global sequence numbers, but
make perfect sense when you consider sequence numbers as being a session
characteristic.

UIDs are cross session, IF (and only IF) the UIDVALIDITY is unchanged.
And there ARE existing, compliant servers which will give a different
UIDVALIDITY for every session (if the underlying message store is
incapable of implementing UIDs).



Larry Osterman 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Michael Wener
Sent: Wednesday, September 29, 2004 5:27 AM
To: [EMAIL PROTECTED]
Subject: Re: FETCH Failure

On Tue, 2004-09-28 at 22:00, Barry Leiba wrote:
  Why is this a better question? I consider one of the goals of
  specification to be reduced ambiguity. I would think that if there
was
  expected behavior then it would be better to be written down?
 
 Hm.  So, let's see:
 You'd expect to be able to open two FTP sessions to the same server,
 set the mode to binary in one session, transfer a file in the other
 session, and expect the mode to be binary, yes?  I don't think the FTP
 spec says otherwise, so

No. This is a classic apples to oranges comparison. A transfer mode is
clearly a session characteristic. The session uses this information to
operate on the data in transit. A better comparison would be state
stored central to FTPs objects of operation, i.e. files. In the case of
FTP the server is mirroring state about files on the server's file
system.

File state, while it can not be relied on to be correct the minute the
server responds to an ls for example, it can be relied on to be
consistent between sessions. I could envision multiple FTP clients
working in concert where one did an ls and concurrent sessions then did
gets.

Note, I'm not arguing SNs should be session state. I'm convinced they
are not. 


 
  My consideration at the moment is only coordinated sessions.
Sessions
  that are aware of each others logic and are behaving in concert.
 
 And do you know ANY Internet protocols where that happens?

I'm not sure exactly what you are looking for, but I would point out
RFC1990 goes in this direction.

It is more important to note I'm not looking for, nor expecting,
protocol help to share sessions. 

Mike





RE: FETCH Failure

2004-09-29 Thread Larry Osterman
Absolutely right, that's a subtlety I missed in my response.  In
particular, just because you have two sessions with the same UIDVALIDITY
doesn't mean that you can use a UID from session 1 in session 2 - if you
haven't seen the EXISTS response for that message, it doesn't exist.

This is actually REALLY important - I suspect that some IMAP servers
will let you get away with doing this, even though it's a violation of
the protocol (in particular, I'm not sure that the Exchange 5.5 IMAP
server would catch this protocol violation - it might, but it might
not).



Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Mark Crispin
Sent: Wednesday, September 29, 2004 12:34 PM
To: Larry Osterman
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: RE: FETCH Failure

On Wed, 29 Sep 2004, Larry Osterman wrote:
 UIDs are cross session, IF (and only IF) the UIDVALIDITY is unchanged.
 And there ARE existing, compliant servers which will give a different
 UIDVALIDITY for every session (if the underlying message store is
 incapable of implementing UIDs).

However, this cross-session characteristic is much less than Mike
seems 
to expect.

The fact that a UID is known to a session does not mean that it is known

to another (even a simultaneous) session.  There are many ways that a 
message can be known to one session but not another.  UIDs only promise 
that a particular UID will not refer to two different messages.

In other words, UIDs are a means by which an application can synchronize

itself in a session using data from another (typically chronologically 
earlier) session.  Sessions do not synchronize on their own, although 
simultaneous sessions will tend towards synchronization over time.

  File state, while it can not be relied on to be correct the minute
the
  server responds to an ls for example, it can be relied on to be
  consistent between sessions.

I just noticed this comment of Mike's.  It's false, as anyone who has 
spent any non-trivial amount of time dealing with NFS can testify.

Sad, but true.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.


RE: how to set keyword ($Forwarded) on specific message?

2004-09-14 Thread Larry Osterman
That seems to be a protocol violation - PERMANENTFLAGS is always a
subset of FLAGS, no?  My reading of that is that the only custom flag
that's supported on that folder is $Forwarded, I don't know what the \*
is doing there.

Larry Osterman 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of John Owens
Sent: Tuesday, September 14, 2004 4:25 PM
To: [EMAIL PROTECTED]
Subject: how to set keyword ($Forwarded) on specific message?

Greetings, 

I am trying to migrate mail folders from standard mbox format into
IMAP. I would like to preserve their flags if possible (replied,
forwarded, etc.). I have been able to preserve replied, but I have not
been able to preserve forwarded.

First, I'm confident that my server supports forwarded:

* FLAGS ($Forwarded \Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS ($Forwarded \* \Answered \Flagged \Deleted \Draft
\Seen)] Permanent flags

and even on other mailboxes that don't have a forwarded message, \* is
defined in PERMANENTFLAGS, so I think I'm good to go.

Now, in my migration code (a python script) I log into the IMAP
reading one message at a time. I log into the IMAP server,
then parse a mbox and read one message at a time. I have not SELECTed
a particular mailbox, but I'm not sure I have to. I'm then using the 
APPEND command to append the message to the mailbox. APPEND takes the
mailbox name as an argument, and also the flag list and the message. 

I can set that flag list to \Answered and it works fine:

\Answered
('OK', ['APPEND completed'])

But I can't set it to $Forwarded:

$Forwarded
('NO', ['APPEND failed: Unknown flag: $Forwarded'])

and I'm at a loss as to what to do. I believe this has something to do
with $Forwarded being a keyword, but I don't know how to set a
keyword. I'd like to at least try to use STORE to set the flag 
manually, but I don't have the UID for the message I just APPENDed.

Since I'm an IMAP rookie, I'm happy to have help from this community; 
if you could a) offer suggestions to fix what I've done wrong so I can
store $Forwarded, and b) offer suggestions as to how you'd accomplish
this task in a better way than I've designed, I'd be much obliged.
Thanks!

JDO
-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-

--
-
 For information about this mailing list, and its archives, see:
 http://www.washington.edu/imap/imap-list.html
-



RE: strange response to message part fetch command

2004-08-26 Thread Larry Osterman
That's highly unlikely given how the Exchange 2000 store treats MIME
messages.

Was the message in question a pure MIME message (in other words did it
come from an SMTP client) or did it originate with an Outlook (MAPI)
client?

Larry Osterman 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Pete Maclean
Sent: Wednesday, August 25, 2004 8:20 AM
To: Pawel Salek; [EMAIL PROTECTED]
Subject: Re: strange response to message part fetch command

At 04:30 AM 8/25/2004, Pawel Salek wrote:
Hi,

I encountered a strange response to message part fetch command. It
looks like a bug in the server to me but I would like to get a second
opinion. Suggestions how to work around this problem are welcome too.
The problem is the server promises to send 23824 octects long literal
but sends 4040+ characters and happily announces the processing has
finished (sanitized log below). Any clues?

Could it be that the server is counting 23824 as the size of the body
part 
prior to base64 encoding?  Encoding 23824 octets in base64 would
typically 
result in slightly less than 4040 characters but it depends of course on

the line length used.  It would be a bad bug but, in a sense, an 
understandable one.

Pete Maclean 



RE: strange response to message part fetch command

2004-08-26 Thread Larry Osterman
Yup, that's enough.  It came from an external client.

It might be interesting to see if you could get the entire original
message.  I know there are Exchange people on the list.

Larry Osterman 


-Original Message-
From: Pawel Salek [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 26, 2004 1:23 PM
To: Larry Osterman
Cc: [EMAIL PROTECTED]
Subject: Re: strange response to message part fetch command

On 08/26/2004 10:03:59 PM, Larry Osterman wrote:
 That's highly unlikely given how the Exchange 2000 store treats MIME
 messages.
 
 Was the message in question a pure MIME message (in other words did  
 it come from an SMTP client) or did it originate with an Outlook  
 (MAPI) client?


I see there headers:
Received: from xxx ([yyy]) by  with Microsoft SMTPSVC
(5.0.2195.5329); Mon, 23 Aug 2004 16:09:23 +0100
Received: from [vvv] (Not Verified[uuu]) by xxx with
NetIQ MailMarshal (v5.5.6.7) id Ba8cc7;
Mon, 23 Aug 2004 16:09:22 +0100
X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2)

Is it enough to answer your question? I see NetIQ MailMarshal is  
available in both SMTP and for Exchange variants.


Pawel

 -Original Message-
 From: [EMAIL PROTECTED]  
 [mailto:[EMAIL PROTECTED]
 On Behalf Of Pete Maclean
 Sent: Wednesday, August 25, 2004 8:20 AM
 To: Pawel Salek; [EMAIL PROTECTED]
 Subject: Re: strange response to message part fetch command
 
 At 04:30 AM 8/25/2004, Pawel Salek wrote:
 Hi,
 
 I encountered a strange response to message part fetch command. It  
 looks like a bug in the server to me but I would like to get a   
 second opinion. Suggestions how to work around this problem are  
 welcome  too. The problem is the server promises to send 23824  
 octects long  literal but sends 4040+ characters and happily  
 announces the processing has finished (sanitized log below). Any  
 clues?

  Could it be that the server is counting 23824 as the size of the  
 body  part  prior to base64 encoding?  Encoding 23824 octets in  
 base64 would  typically  result in slightly less than 4040 characters

 but it depends of course  on   the line length used.  It would be a  
 bad bug but, in a sense, an  understandable one.

 Pete Maclean
 




RE: shared mailbox permanent flags?

2004-08-19 Thread Larry Osterman
Title: RE: shared mailbox permanent flags?






Ah, you're right - I forgot 
about \Recent. \Recent is "special" since it's not a "real" 
flag.


From: Pete Maclean 
[mailto:[EMAIL PROTECTED]Sent: Wed 8/18/2004 2:48 PMTo: 
Larry Osterman; petite_abeille; [EMAIL PROTECTED]Subject: RE: 
shared mailbox permanent flags?

I think that either what you say is not quite correct or I am 
notunderstanding it right. RFC 3501 gives an example of a FLAGS 
response thatdoes not include all the system/built-in 
flags:Example: S: * FLAGS (\Answered \Flagged \Deleted 
\Seen \Draft)In this case, \Recent is missing. As I read the spec, 
if you do notinclude a particular system flag in this response, it means 
that you do notsupport it for the mailbox. Incidentally, some versions 
of my server donot support \Recent at all.Pete MacleanAt 
05:09 PM 8/18/2004, Larry Osterman wrote:You MUST support ALL the 
built-in flags on every mailbox. You might notbe able to persist 
those flag settings, but you MUST support them on aper-session 
basis.-Original Message-From: 
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On 
Behalf Of petite_abeilleSent: Wednesday, August 18, 2004 2:00 
PMTo: [EMAIL PROTECTED]Subject: Re: shared mailbox permanent 
flags?Hi Timo,On Aug 18, 2004, at 22:37, Timo 
Sirainen wrote:  FLAGS list shouldn't be empty. It should 
contain at least the system  flags.Ok. So FLAGS 
should always returns \Answered \Deleted \Draft \Flagged\Recent and 
\Seen? Even if they are not applicable for such mailbox? 
 But this doesn't seem to help :/   Yep. I doubt 
there's a way to make it work many (if any) clients.Sigh 
:/PA.




RE: shared mailbox permanent flags?

2004-08-19 Thread Larry Osterman








The
simplest way of doing this is to turn the system flags into bit fields and add
a 6 or so bits per message to your per-session in-memory list of messages (you
do have an in-memory list of messages, right?) Then as the user does store and
fetch of the flags, you just flip the bits on and off in the per-session
in-memory list.







Larry
Osterman 











From: Pete Maclean [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 19, 2004 1:29 PM
To: Larry Osterman; [EMAIL PROTECTED]
Subject: RE: shared mailbox permanent flags?





Thanks, Larry. I too forgot
about the specialness of \Recent when I wrote that message. My
misunderstanding about the other flags is a different matter though. For
the entire four or so years that I have been working with IMAP up until
yesterday I was confidently convinced that a server was not obliged to handle
system flags that it could not manage as PERMANENTFLAGS. I was quite
distressed to realize my error. Fortunately, in spite of this, my server
does handle such flags correctly (well, I hope correctly -- see below) with the
exception of \Recent. And that I shall fix.

I am now struggling to make sure that I properly understand all the
implications of system-flag handling so that I can confirm that my code is
indeed correct. For a start, a server must list all the system flags
(except \Recent) in a FLAGS response to every successful SELECT or EXAMINE
(even though that seems redundant).

RFC 3510 section 7.1 states that, If the client attempts to STORE a flag
that is not in the PERMANENTFLAGS list, the server will either ignore the
change or store the state change for the remainder of the current session
only. Now, I suppose that ignoring such a change could be deemed a
reasonable strategy because one could argue that it is effectively equivalent
to storing the change only to have another party immediately do a STORE that
reverses it. However, if a server adopts that strategy, it is equivalent
to its not handling the flag at all (except to the extent that it does not
consider a STORE for the flag to be an error). So it must advertise that
it supports the flag even though it really does not.

Now, what if a server stores the state change for the remainder of the current
session only. Does that mean it stores it *for* the current session
only? I presume so because anything else could be a nightmare. This
suggests that, if the same client creates a second session and selects the same
mailbox, it could see different flag states from the first. Granted,
opening such a second session is probably an ill-advised venture to begin with
(although I have seen it happen) so this inconsistency is hardly a big deal --
never mind that it is something that a properly functioning client should be
prepared for.

By contrast to all this, my reading of the RFC is that, when the \Seen flag is
set implicitly (by virtue of an appropriate FETCH), it must be indeed be set;
there is no option. Now, a server could choose not to set it and hold
forth the same argument as above (that the flag could be instantly reset by a
third party) but that argument breaks down because, if the flag is effective
only for the session involved, then in practice nothing external could sensibly
change it. This all seems a bit of a mess.

What I have said may sound somewhat critical and that may be because I am
rather peeved at my own misunderstanding. My prime intention in writing
this message though is solely to make sure that I now do understand this well.

Pete Maclean

At 12:01 PM 8/19/2004, Larry Osterman wrote:



Ah, you're right - I
forgot about \Recent. \Recent is special since it's not a
real flag.







From: Pete Maclean [mailto:[EMAIL PROTECTED]]
Sent: Wed 8/18/2004 2:48 PM
To: Larry Osterman; petite_abeille; [EMAIL PROTECTED]
Subject: RE: shared mailbox permanent flags?

I think that either what you say is not quite
correct or I am not
understanding it right. RFC 3501 gives an example of a FLAGS response
that
does not include all the system/built-in flags:

Example: S: * FLAGS (\Answered \Flagged \Deleted \Seen
\Draft)

In this case, \Recent is missing. As I read the spec, if you do not
include a particular system flag in this response, it means that you do not
support it for the mailbox. Incidentally, some versions of my server do
not support \Recent at all.

Pete Maclean

At 05:09 PM 8/18/2004, Larry Osterman wrote:
You MUST support ALL the built-in flags on every mailbox. You might
not
be able to persist those flag settings, but you MUST support them on a
per-session basis.

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
On Behalf Of petite_abeille
Sent: Wednesday, August 18, 2004 2:00 PM
To: [EMAIL PROTECTED]
Subject: Re: shared mailbox permanent flags?

Hi Timo,

On Aug 18, 2004, at 22:37, Timo Sirainen wrote:

  FLAGS list shouldn't be empty. It should contain at least the system
  flags.

Ok. So FLAGS should always returns \Answered \Deleted \Draft \Flagged

RE: shared mailbox permanent flags?

2004-08-18 Thread Larry Osterman
Actually if you set FLAGS to non empty and PERMANENTFLAGS to empty, all
the clients should work.  You need to maintain flags in-memory even if
you can't persist them (it's in the spec), but most (if not all) clients
handle the non persistence correctly (if you think about it, they won't
know the difference typically).


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Timo Sirainen
Sent: Wednesday, August 18, 2004 1:37 PM
To: petite_abeille
Cc: [EMAIL PROTECTED]
Subject: Re: shared mailbox permanent flags?

On 18.8.2004, at 23:28, petite_abeille wrote:

 Returning empty PERMANENTFLAGS list is your best bet. Although 
 probably no clients actually do it.

 I already do that for anonymous access:

 * FLAGS ()
 * OK [PERMANENTFLAGS ()]

FLAGS list shouldn't be empty. It should contain at least the system 
flags.

 But this doesn't seem to help :/

Yep. I doubt there's a way to make it work many (if any) clients.


RE: shared mailbox permanent flags?

2004-08-18 Thread Larry Osterman
You MUST support ALL the built-in flags on every mailbox.  You might not
be able to persist those flag settings, but you MUST support them on a
per-session basis.

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of petite_abeille
Sent: Wednesday, August 18, 2004 2:00 PM
To: [EMAIL PROTECTED]
Subject: Re: shared mailbox permanent flags?

Hi Timo,

On Aug 18, 2004, at 22:37, Timo Sirainen wrote:

 FLAGS list shouldn't be empty. It should contain at least the system 
 flags.

Ok. So FLAGS should always returns \Answered \Deleted \Draft \Flagged 
\Recent and \Seen? Even if they are not applicable for such  mailbox?

 But this doesn't seem to help :/

 Yep. I doubt there's a way to make it work many (if any) clients.

Sigh :/

PA.



RE: FLAGS vs PERMANENTFLAGS

2004-08-06 Thread Larry Osterman
Honestly, it looks like it could be Exchange 5.5, but I'm not sure - the
UIDVALIDITY value seems higher than I'd expect for Exchange.  Also, I
don't remember 5.5 supporting UID+ so...

Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Arnt Gulbrandsen
Sent: Friday, August 06, 2004 4:58 AM
To: Stuart Nicholson
Cc: [EMAIL PROTECTED]
Subject: Re: FLAGS vs PERMANENTFLAGS

Stuart Nicholson writes:
 However I would expect folders that can't be modified to have the 
 READ-ONLY property surely? We see things like this (taken from a user 
 log):

 0003 SELECT INBOX[0x0D][0x0A]
  * 40 EXISTS
  * 0 RECENT
  * OK [UIDVALIDITY 1012731894] UID validity status
  * OK [UIDNEXT 7880] Predicted next UID
  * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
  * OK [PERMANENTFLAGS ()] Permanent flags
  * OK [UNSEEN 8] first unseen message in INBOX
 0003 OK [READ-WRITE] SELECT completed

 And the user complains that other clients allow FLAGS to be set and 
 they are set permanently (over sessions) which seems to violate the 
 RFC, at least as I understood it.

May I ask which server that is?

 I'm beginning to think given our short session times and rigid session

 model (i.e. we always sync the message flags at start of session), 
 there's really little point in us honouring PERMANENTFLAGS at all.

Does your client refuse to set session flags? Why?

Arnt


RE: FLAGS vs PERMANENTFLAGS

2004-08-05 Thread Larry Osterman
That behavior (empty permanentflags but flags) is explicitly allowed.
And if you read the spec VERY carefully you'll find it's REQUIRED if the
user can't modify the folder.  The server maintains flags, but they
aren't persisted.

Think of it this way: FLAGS is the set of flags supported by the server.
PERMENANTFLAGS is the set of flags that will be persisted in the
server's database.  FLAGS is necessarily a superset of PERMENANTFLAGS,
but they are different and have different meanings.



Larry Osterman 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Stuart Nicholson
Sent: Friday, August 06, 2004 11:16 AM
To: [EMAIL PROTECTED]
Subject: FLAGS vs PERMANENTFLAGS

Greetings, my first post here so an brief intro: I'm the developer
building
IMAP client support for SnapperFish. We're responsible for 'SnapperMail'
(www.snappermail.com) a wireless email client for PalmOS based devices.

Question: How well honoured are FLAGS vs PERMANENTFLAGS in the IMAP
community? Is PERMANENTFLAGS overdesign that actually isn't used in the
wild
that often? Do other clients actually only honour FLAGS and disregard
PERMANENTFLAGS?

Is ask beause our IMAP client is currently coded closely to RFC3501 in
this
respect however we've received a number of reports from users of servers
that persistently return empty (i.e. PERMANENTFLAGS ()) responses
while
still allowing the flags in FLAGS to be permanently set on messages in
the
mailbox. This seems in direct violation to the RFC however other IMAP
clients happily set flags on these particular servers.

Is it worth just relaxing our client on this point hence disregarding
PERMANENTFLAGS and simply relying on FLAGS and the READ-WRITE/READ-ONLY
folder property?

Thanks,

Stuart Nicholson
www.snappermail.com

-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-

--
-
 For information about this mailing list, and its archives, see:
 http://www.washington.edu/imap/imap-list.html
-



RE: UIDVALIDITY response optional?

2004-05-27 Thread Larry Osterman
Thanks for correcting me Mark :)  It's been too many years :(


Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Mark Crispin
Sent: Thursday, May 27, 2004 4:43 PM
To: Larry Osterman
Cc: Pete Maclean; [EMAIL PROTECTED]
Subject: RE: UIDVALIDITY response optional?

On Thu, 27 May 2004, Larry Osterman wrote:
 I believe that if you don't return UIDVALIDITY, it means that the
server
 doesn't support persistent UID's.  UIDs are still supported, but they
 won't persist from one select to another.

No, UIDVALIDITY is required from an IMAP4 and IMAP4rev1 server.

If UIDs are not persistent, then UIDVALIDITY is returned as a 
session-specific value which is undefined but is greater than the value 
returned from a previous session.  The 32-bit UNIX format date/time of 
SELECT time is a good value to use for this.

Note that since UIDVALIDITY is unsigned, this doesn't need to be fixed
in 
2038 but can wait until 2106.  Since I fully intend to be dead in 2106 
(I'd be 150 years old otherwise) I'm not going to worry about how to fix

it...  :-)

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.


RE: Content-type and Exchange 2000

2004-04-20 Thread Larry Osterman
At a first blush, it looks like the 5.5 server's configured to render
MAPI messages in text/plain by default and the Exchange 2000 server's
configured to render MAPI messages in text/html, but I may be wrong.


Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of HEARSON, CHRIS
Sent: Tuesday, April 20, 2004 5:55 AM
To: '[EMAIL PROTECTED]'
Subject: Content-type and Exchange 2000

I open a mail message (.msg file) in Outlook 2000 pointing to an
Exchange
5.5 server, the BODYSTRUCTURE command returns:

(TEXT PLAIN (charset iso-8859-1) NIL NIL QUOT
ED-PRINTABLE 149 3 NIL NIL NIL))

The exact same .msg file, opened in the same client but now pointing to
an
Exchange 2000 mail server, and the BODYSTRUCTURE command returns:

(TEXT HTML (charset iso-8859-1) NIL NIL QUOT
ED-PRINTABLE 149 3 NIL NIL NIL))

What is going on here?

_
*** E-Mail confidentiality notice ***
This message and any attachments are intended for the addressee only. It
is private and confidential. If you have received this message in error,
please reply to this e-mail and highlight the error and then remove it
from your system. You must take no action based on this, nor must you
copy or show this to anyone. 
_

This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-



RE: Unsolicited messages vs. NOOP

2004-01-08 Thread Larry Osterman
This is totally correct - part of the contract for IDLE is that the
client guarantees that there is a recv() outstanding.

5.3 isn't superfluous however, it's what spells this behavior out in
protocol terms (my comment was in sockets terms, which doesn't apply if
IMAP is implemented on protocols other than TCP/IP)

Larry Osterman 


-Original Message-
From: Christof Drescher [mailto:[EMAIL PROTECTED] 
Sent: Thursday, January 08, 2004 12:30 PM
To: Larry Osterman
Cc: [EMAIL PROTECTED]
Subject: Re: Unsolicited messages vs. NOOP

Hi,

thank you for your message. Makes things clearer (technically).

 The problem is that a server can't send data to a client until it can
 GUARANTEE that the client has a recv() outstanding on the socket.
 Otherwise it's possible that the servers send() command will block
(this
 happens when the TCP buffers on the client fill up, which causes the
 client to flow control the connection, then the TCP buffers on the
 server fill up, then sockets will cause the send() command to hang
until
 all the downstream buffers are freed up).

Just wondering: A server can never GUARANTEE that a client as a
recv() outstanding on the socket while no command is in progress,
can it? Since no client can tell the server that it DOES a recv() 
by any means, it must assume that there is NO outstanding recv(), 
right?

If so, the whole paragraph 5.3 about it would simply be
superfluous, wouldn't it?

I really don't mind, I have my answer (sending updates just as
a response to client commands in progress seems the way).

 In addition, you about the only unsolicited status updates you can
send
 to the client are EXISTS, RECENT and FLAGS updates, EXPUNGE updates
are
 absolutely verboten.  And if you ever get to the point where you would
 want to send an EXPUNGE update, you need to stop sending updates to
the
 client because the sequence numbers would get out of date with after
 this.

Wow, we just had the topic about EXPUNGE, which must not be sent at
FETCH/EXISTS/SEARCH, but may be sent on any other command.

This was never doubted. Do you?

Christof 


RE: Unsolicited messages vs. NOOP

2004-01-07 Thread Larry Osterman
Please define unsolicited server status updated?  Do you mean that
your server is simply sending the message to the client unilaterally
(not in response to a user command)?

If that's the case, you're going to deadlock your server pretty darned
soon if you keep on doing it.

The problem is that a server can't send data to a client until it can
GUARANTEE that the client has a recv() outstanding on the socket.
Otherwise it's possible that the servers send() command will block (this
happens when the TCP buffers on the client fill up, which causes the
client to flow control the connection, then the TCP buffers on the
server fill up, then sockets will cause the send() command to hang until
all the downstream buffers are freed up).

In addition, you about the only unsolicited status updates you can send
to the client are EXISTS, RECENT and FLAGS updates, EXPUNGE updates are
absolutely verboten.  And if you ever get to the point where you would
want to send an EXPUNGE update, you need to stop sending updates to the
client because the sequence numbers would get out of date with after
this.



Larry Osterman 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Christof Drescher
Sent: Wednesday, January 07, 2004 3:30 PM
To: [EMAIL PROTECTED]
Subject: Unsolicited messages vs. NOOP

Hi,
When testing with a couple of clients, I found that some do not really
work
well with unsolicited server status updates, e.g. flag updates or an *
n
EXISTS message.

It seems their preferred way is their regular update via NOOP.

Is this a general thing? Should the strategy be to only send immediate
notification to clients which use the IDLE command, and none to those
which
do not (i.e., wait for them to poll via NOOP?)

E.g. Mulberry or PC-Pine (those I just tested) do simply ignore those
messages, and even worse, they are lost for the next noop (pine
catches up
fine, but mulberry never gets it, only at re-login).

So what would you suggest?
- sending unsolicited commands nevertheless, because the clients are
weird?
:)
- sending no unsolicited commands at all, only at noop?
- sending unsolicited commands, and repeating them at the next noop
(uhm...)

Any comments would be appreciated.

Christof

-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-

--
-
 For information about this mailing list, and its archives, see:
 http://www.washington.edu/imap/imap-list.html
-



RE: Multiple command clarification.

2004-01-06 Thread Larry Osterman
Christof, as the author of the well-known server (there, I gave it
away), the ghost messages that it returns are valid w.r.t. FLAGS, but
when you attempt to fetch a body part, it returns NIL (or an envelope
containing only NILs) etc.

Our problem was that our message store doesn't have the ability for the
IMAP server to add a reference to a message when it hands the message
out to the IMAP clients, thus if another user using another client
(maybe a POP3 client, maybe a MAPI/RPC client, maybe a HTTP/DAV client,
maybe an OLEDB client)  deletes the message, then it's gone.  There's no
way to hold onto the message for the IMAP client, given the store
limitations.  If it were possible in the message store, we would have
done this, the server caches the mailbox state (flags, message list,
message UIDs) for eache client connecting to the server so adding the
reference wouldn't have been a big deal, and I'd have put code in to fix
this in a heartbeat.



Btw, you were earlier objecting to maintaining per-client state of the
messages that have been given to the client, this is a flat-out
requirement of IMAP - the server MUST maintain a list that contains:
The messages that the client has been told about
The message sequence #s of those messages
The UIDs of those messages
The FLAGS for those messages (this is critical for read-only
mailboxes)

This isn't called out explicitly in the specification, but there are
MUST requirements in several places that add up to this requirement.  I
don't know of ANY successful IMAP server that doesn't do this.

Larry


 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Christof Drescher
 Sent: Friday, January 02, 2004 1:50 PM
 To: Mark Crispin
 Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
 Subject: Re: Multiple command clarification.
 
 Hi,
 
  A well-known server implements 4.1.3 (dummy messages), and in 
  practice,
 it
  seems to work out.  Either the client caches and doesn't ask 
  questions
 that
  would show the server is inconsistent, or the client doesn't cache 
  and
 doesn't
  know the server is inconsistent.  That is, there's a problem, but 
  both of
 the
  likely client implementations tend to cover it up quite nicely.
 
 I agree that 4.1.3 is less objectionable than 4.1.2; it 
 delivers less 
 of a surprise, and most clients probably wouldn't even 
 recognize that 
 they were surprised.
 
 Though it might seem so, I'm not a stubborn dumb mule. I just 
 want a usable solution.
 
 So I could also live with these ghost messages. What about 
 stating something like ghost messages (as defined in 
 RFC2180) are a valid response, which should force clients to 
 NOOP to catchup.
 
 I just want clarification for the issue, be it a NO 
 [NOOPFIRST] Fetch response
 or valid NIL message response.
 
 Huh?
 
 Christof
 
 


RE: Assumption of hierarchy?

2004-01-06 Thread Larry Osterman
Absolutely.  It's entirely possible that you can have hierarchy without
there being folders in the middle.

Consider Netnews.

Alt.Fan doesn't exist, but Alt.Fan.Mark.Crispin might.

With Exchange, this could happen if you have access to Public
Folders/Busi 3923C2/Carisa Lloyd but you don't have access to Public
Folders/Busi 3923C2 - if you can't SELECT the mailbox, Exchange won't
show it to you.



 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of David Harris
 Sent: Tuesday, January 06, 2004 2:12 AM
 To: [EMAIL PROTECTED]
 Subject: Assumption of hierarchy?
 
 OK, this one has me stumped.
 
 Imagine that as a client you get this as part of a response to a LIST
 command:
 
 -- Cut here 
 * LIST () / Public Folders/Busi 3923C2/Carisa Lloyd
 -- Cut here 
 
 Is it legal to receive this response without also at some 
 point receiving this as well?
 
 -- Cut here 
 * LIST () / Public Folders/Busi 3923C2
 -- Cut here 
 
 In other words, can a LIST response implicitly create a level 
 of hierarchy? If so, how can you know what attributes the 
 implicit hierarchy element has without specifically 
 re-querying for it?
 
 I'm currently seeing this behaviour from Exchange Server 
 2003, and it's throwing out my code quite severely. Before I 
 add a lot of code to handle this, I want to be sure that it's 
 legal and that I'm not just creating a rod for my back at 
 some later stage.
 
 If this *is* legal, I really think the RFC needs to be 
 updated to reflect it, because I hardly think it can be 
 considered intuitive.
 
 Cheers!
 
 -- David --
 
 -- David Harris -+- Pegasus Mail 
 --
   Box 5451, Dunedin, New Zealand | e-mail: [EMAIL PROTECTED]
Phone: +64 3 453-6880 | Fax: +64 3 453-6612
 
 Sign seen at a tailor's in Rhodes:
Order your summers suit. Because is big rush, we will
 execute customers in strict rotation.
 
 
 
 --
 -
  For information about this mailing list, and its archives, see: 
  http://www.washington.edu/imap/imap-list.html
 -
 
 


RE: Children flags, RFC3348.

2004-01-06 Thread Larry Osterman
Because at the first IMC face-to-face, a number of client authors said:
Hey, it would be REALLY nice if you added this feature to the
protocol, Mike Gharns said Sure, I'll write it up, and I said Ok,
I'll put it in.  So we did.

And a couple of people added support for it and.

It turns out that the documentation for LIST explicitly says that you
can have whatever flags you wanted (read the spec carefully) so there
was no need for a new variant of LIST.


 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of David Harris
 Sent: Saturday, January 03, 2004 2:52 PM
 To: [EMAIL PROTECTED]
 Subject: Children flags, RFC3348.
 
 OK, Arnt Gulbransen has pointed me at RFC3348, which covers 
 the CHILDREN extension (thanks Arnt).
 
 What I want to know now is why is the Exchange server using 
 this extension?.
 
 Consider this text from RFC3501 section 7.2.1 (CAPABILITY 
 response, page 67 in my copy):
 
 -- Cut here 
Other capability names indicate that the server supports an
extension, revision, or amendment to the IMAP4rev1 protocol.
Server responses MUST conform to this document until the client
issues a command that uses the associated capability.
 -- Cut here 
 
 Now, I have issued *no* command other than LIST in this 
 session: am I wrong in thinking that the Exchange server is 
 behaving improperly by sending LIST responses that contain 
 HasChildren and HasNoChildren flags in them? Surely I should 
 need to issue the command CHILDREN 
 (or whatever) before this extension is enabled? RFC3348 does 
 not appear to me to be a formal revision of RFC3501 (or of 
 2060, for that
 matter) - its status is informational.
 
 I don't want to sound anal about this, but it seems to me 
 that a major aspect of IMAP has always been ensuring 
 interoperability, and injudicious use of extensions in this 
 manner is not conducive to that. In this case it's probably 
 relatively harmless, but I can think of plenty of situations 
 where it would not be.
 
 Or am I simply misunderstanding this issue? Is it in fact 
 legal for a server to issue any response it wants in this case?
 
 Cheers!
 
 -- David --
 
 -- David Harris -+- Pegasus Mail 
 --
   Box 5451, Dunedin, New Zealand | e-mail: [EMAIL PROTECTED]
Phone: +64 3 453-6880 | Fax: +64 3 453-6612
 
 Thought for the day:
 Erotic (adj): using a feather as a sex aid.
 Kinky (adj):  using the whole duck.
 
 
 
 --
 -
  For information about this mailing list, and its archives, see: 
  http://www.washington.edu/imap/imap-list.html
 -
 
 


RE: Trailing hierarchy delimiter in name

2004-01-06 Thread Larry Osterman
The trailing / indicates that the mailbox in question is a
hierarchy-only mailbox, it can't contain messages iirc.
 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of David Harris
 Sent: Sunday, January 04, 2004 6:23 PM
 To: [EMAIL PROTECTED]
 Subject: Trailing hierarchy delimiter in name
 
 I'm sure that this must be covered somewhere in RFC3501, but 
 I can't find it, so I'd appreciate some guidance... Consider 
 the following LIST response from an IMAP server, where the 
 hierarchy delimiter is '/':
 
* LIST (\\Noselect) / Public Folders/
 
 How should the trailing hierarchy delimiter on the mailbox 
 name be interpreted? Does it have a special meaning of some kind?
 
 I can find the section covering the semantics of this for 
 CREATE commands, but I can't see anything indicating what 
 this would mean in a LIST response.
 
 Any assistance would be appreciated.
 
 Cheers!
 
 -- David --
 
 -- David Harris -+- Pegasus Mail 
 --
   Box 5451, Dunedin, New Zealand | e-mail: [EMAIL PROTECTED]
Phone: +64 3 453-6880 | Fax: +64 3 453-6612
 
 On the menu in a Chinese Restaurant:
We hope you will enjoy our hostility.
 
 
 
 --
 -
  For information about this mailing list, and its archives, see: 
  http://www.washington.edu/imap/imap-list.html
 -
 
 


RE: Assumption of hierarchy?

2004-01-06 Thread Larry Osterman
Before someone mentions \NoSelect - you not might have folder visibility
access to Public Folders/Busi 3923C2 - which means that even though
the folder exists, you can't enumerate it.

Exchange has the concept of per-folder (and per-message) visibility as
enforced by the Visible ACE flag, what that means is that it's
possible that if the following folder hierarchy exists:

a   - User:RV
a\b - User:
a\b\c   - User:RV
a\d - User:RV

The user will only see a and a\b\c in the folder hierarchy, a\b won't
show up, since the client can't see it.

If you were using Outlook, then if you opened a, you'd see only d.
If, however someone mailed you a link to a\b\c you'd be able to navigate
to that folder.

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Larry Osterman
 Sent: Tuesday, January 06, 2004 7:14 AM
 To: David Harris; [EMAIL PROTECTED]
 Subject: RE: Assumption of hierarchy?
 
 Absolutely.  It's entirely possible that you can have 
 hierarchy without there being folders in the middle.
 
 Consider Netnews.
 
 Alt.Fan doesn't exist, but Alt.Fan.Mark.Crispin might.
 
 With Exchange, this could happen if you have access to 
 Public Folders/Busi 3923C2/Carisa Lloyd but you don't have 
 access to Public Folders/Busi 3923C2 - if you can't SELECT 
 the mailbox, Exchange won't show it to you.
 
 
 
  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of David Harris
  Sent: Tuesday, January 06, 2004 2:12 AM
  To: [EMAIL PROTECTED]
  Subject: Assumption of hierarchy?
  
  OK, this one has me stumped.
  
  Imagine that as a client you get this as part of a response 
 to a LIST
  command:
  
  -- Cut here 
  * LIST () / Public Folders/Busi 3923C2/Carisa Lloyd
  -- Cut here 
  
  Is it legal to receive this response without also at some point 
  receiving this as well?
  
  -- Cut here 
  * LIST () / Public Folders/Busi 3923C2
  -- Cut here 
  
  In other words, can a LIST response implicitly create a level of 
  hierarchy? If so, how can you know what attributes the implicit 
  hierarchy element has without specifically re-querying for it?
  
  I'm currently seeing this behaviour from Exchange Server 2003, and 
  it's throwing out my code quite severely. Before I add a 
 lot of code 
  to handle this, I want to be sure that it's legal and that I'm not 
  just creating a rod for my back at some later stage.
  
  If this *is* legal, I really think the RFC needs to be updated to 
  reflect it, because I hardly think it can be considered intuitive.
  
  Cheers!
  
  -- David --
  
  -- David Harris -+- Pegasus Mail
  --
Box 5451, Dunedin, New Zealand | e-mail: [EMAIL PROTECTED]
 Phone: +64 3 453-6880 | Fax: +64 3 453-6612
  
  Sign seen at a tailor's in Rhodes:
 Order your summers suit. Because is big rush, we will
  execute customers in strict rotation.
  
  
  
  --
  -
   For information about this mailing list, and its archives, see: 
   http://www.washington.edu/imap/imap-list.html
  -
  
  
 


RE: Extension for status updates of non-selected mailboxes?

2003-12-17 Thread Larry Osterman
TCP connections are NOT cheap, and do not scale infinitely.  When you
have 30,000 clients connected to your IMAP server (a very reasonable
number for a large farm), and each of them is opening 10 mailboxes,
you're talking 300,000 sockets in use.

That will tax the limits of ANY operating system.

Microsoft puts 8K users on each of it's Exchange servers, so seeing
30,000 clients on a single box is NOT unreasonable, especially at ISP
email levels (Microsoft people tend to receive 100+ emails a day and
send 30+, which is significantly higher than ISP clients).



Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Arnt Gulbrandsen
Sent: Wednesday, December 17, 2003 2:34 AM
To: Christof Drescher
Cc: IMAP protocol mailing list; DINH Viet Hoa
Subject: Re: Extension for status updates of non-selected mailboxes?

Christof Drescher writes:
 Why not select all the interesting mailboxes to poll (in different 
 sessions) and NOOP them or use IDLE extension.

 Because this creates an enourmous overhead in connections, server 
 workload etc. Let's assume we have only 10 mailboxes shared with a 
 workgroup of 20 users, you'd have 200 open connections on the server 
 for simple new-mail-notification?! And these are small numbers...

TCP connections are cheap, once opened. And even opening can be cheap, 
depending on whether you're using TLS or not and what sort of 
authentication you're using.

A worse problem is that a client can use this method only if it knows 
the server supports concurrent access to all of the relevant mailboxes. 
If the server doesn't, only one of the 20 users can observe new mail in 
each shared folder.

--Arnt


RE: Extension for status updates of non-selected mailboxes?

2003-12-17 Thread Larry Osterman
There are servers that can't support concurrent access to mailboxes -
read Barry Lieba's best practices document on concurrent mailbox
accesses.


Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Christof Drescher
Sent: Wednesday, December 17, 2003 2:56 AM
To: Arnt Gulbrandsen
Cc: [EMAIL PROTECTED]
Subject: Re: Extension for status updates of non-selected mailboxes?

Arnt Gulbandsen wrote:
TCP connections are cheap, once opened. And even opening can be cheap,
depending on whether you're using TLS or not and what sort of
authentication you're using.

It might be cheap for modern pc systems and only concerning the
Network
overhead. But for one, there are much smaller systems today (PDS's,
Smartphones, Embedded Devices) which certainly use IMAP, and for the
other,
the server has to keep this number of connections open as well, which
might - depending on implementation - be much mor costly than the mere
network connection.

A worse problem is that a client can use this method only if it knows
the server supports concurrent access to all of the relevant mailboxes.
If the server doesn't, only one of the 20 users can observe new mail in
each shared folder.

Puzzles me: Isn't a server broken if it does not?!?!

Christof




RE: Extension for status updates of non-selected mailboxes?

2003-12-17 Thread Larry Osterman
On NT, 300,000 TCP connections that are idle means that 300,000 socket
handles are open.  On *nix, it means that 300,000 processes are running.
This is a big deal.

There's more to large systems engineering than network bandwidth.


Larry Osterman 


-Original Message-
From: Arnt Gulbrandsen [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 17, 2003 11:48 AM
To: Larry Osterman
Cc: Christof Drescher; IMAP protocol mailing list; DINH Viet Hoa
Subject: Re: Extension for status updates of non-selected mailboxes?

Larry Osterman writes:
 TCP connections are NOT cheap, and do not scale infinitely. When you 
 have 30,000 clients connected to your IMAP server (a very reasonable 
 number for a large farm), and each of them is opening 10 mailboxes, 
 you're talking 300,000 sockets in use.

 That will tax the limits of ANY operating system.

I'm not saying the total cost of IMAP clients is low, merely that the 
cost of idle TCP connections is. (Note: Idle.) 300,000 TCP connections 
with an average of four packets per hour is not a very difficult task, 
if that's all there is.

Now, if you talk about watching 300,000 mailboxes on behalf of 30,000 
users using one piece of hardware, that's a much more challenging job.

--Arnt


RE: fetch + seen flag

2003-12-11 Thread Larry Osterman
Title: Re: fetch + seen flag






Remember my comment the other 
day about flags being maintained? It was on a read-only mailbox that this 
became obvious - iirc, Outlook Express had fits when it tried to set the \Seen 
flag on a message and the change didn't take (because the mailbox was 
read-only).

If you look very carefully at the spec (and 
you need to look VERY carefully), it turns out that you MUST maintain the flags 
on a read-only mailbox even if they're not persisted.


From: [EMAIL PROTECTED] on behalf of 
Mark CrispinSent: Thu 12/11/2003 4:29 PMTo: DINH Viet 
HoaCc: [EMAIL PROTECTED]Subject: Re: fetch + seen 
flag

On Fri, 12 Dec 2003, DINH Viet Hoa wrote:  On Thu, 
11 Dec 2003, Marcel Crasmaru wrote:   Suppose that message of 
sequence number 1 is unseen.   The client issue the 
command:   C: tag fetch 1 body[]   and the 
server fetches the message but for some reasons   it can not 
flag the message as seen (e.g., rename of a file failes).   What 
should the server respond:   0. whatever, the server is already 
broken;   1. tagged OK without status of the flags;  
 2. tagged OK with status of the flags but with flag \seen unset; 
  3. tagged NO or   4. other response?  (0) 
is the answer. :-) and in the case the mailbox is readonly, what 
is the answer ?Readonly doesn't matter. Only PERMANENTFLAGS 
matter.A mailbox can be readonly but still allow the user to set and 
clear flags(e.g. per-user flags for a public mailbox).-- Mark 
--http://staff.washington.edu/mrcScience 
does not emerge from voting, party politics, or public debate.Si vis pacem, 
para bellum.




RE: BODY.PEEK[HEADER] Server-Response

2003-12-10 Thread Larry Osterman
Of course it doesn't work.  Since when has ANY penis enlargement product
sold over the internet ever worked?



Sorry, I just HAD to get this in :)  I apologize  for cluttering your
inboxes with lame attempts at humor.


Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Chun-Ping Man
Sent: Tuesday, December 09, 2003 2:42 AM
To: [EMAIL PROTECTED]
Subject: BODY.PEEK[HEADER] Server-Response

Hello,

I get the following UID client-command:

C: 004 fetch 4827313 (UID RFC822.SIZE BODY.PEEK[HEADER] FLAGS)

and my server-response is:

S: * 4827313 FETCH (UID 4827313)
S: * 4827313 FETCH (RFC822.SIZE 123456)
S: * 4827313 FETCH (BODY.PEEK[HEADER]
S: Return-path: [EMAIL PROTECTED]
S: From: [EMAIL PROTECTED]
S: Date: Fri, 24 Oct 2003 15:23:25 +0100
S: To: [EMAIL PROTECTED]
S: Subject: Penis Enlargement up to 5000%
S: )   
S: * 4827313 FETCH (FLAGS ())
S: 004 OK UID FETCH completed

is this correct? because it doesnt work.

thanx for the support

chun-ping





-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-

--
-
 For information about this mailing list, and its archives, see:
 http://www.washington.edu/imap/imap-list.html
-



RE: FLAGS clarification

2003-12-10 Thread Larry Osterman
There are clients that rely on the fact that flags can be set and later
retrieved on the same session.  The flags don't need to be persisted but
they DO need to be maintained for the current session.



Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Richard Bang
Sent: Wednesday, December 10, 2003 3:32 AM
To: [EMAIL PROTECTED]
Subject: RE: FLAGS clarification

Hi,

Thanks for the clarification, but does returning read only allow me to
return the suggested response to the attempt to change the flags?

i.e.
005 STORE 1 FLAGS (\seen)
005 OK STORE Completed but I ignored you because this is read only

Or does read only not apply to flags and I need to create a session flag
store.

Thanks for your help

Richard Bang
Floosietek Ltd
[EMAIL PROTECTED]
http://www.floosietek.com


 -Original Message-
 From: Mark Crispin [mailto:[EMAIL PROTECTED]
 Sent: 09 December 2003 17:18
 To: Richard Bang
 Cc: [EMAIL PROTECTED]
 Subject: Re: FLAGS clarification


 On Tue, 9 Dec 2003, Richard Bang wrote:
  * FLAGS ()

 Not compliant.  System flags are mandatory-to-implement.

 The PERMANENTFLAGS list can be empty though.

 -- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.





RE: FLAGS clarification

2003-12-10 Thread Larry Osterman
No, see my previous mail.  The correct sequence is:

004 STORE 1 FLAGS (\seen)
* 1 FETCH (FLAGS (\seen))
004 OK STORE Completed but I ignored you because this is read only

005 STORE 1 +FLAGS.silent (\seen)
005 OK STORE Completed but I ignored you because this is read only

006 UID STORE 25 FLAGS (\seen)
* 2 FETCH (UID 25 FLAGS (\seen))
006 OK STORE Completed but I ignored you because this is read only

Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Richard Bang
Sent: Wednesday, December 10, 2003 5:12 AM
To: [EMAIL PROTECTED]
Subject: RE: FLAGS clarification

Hi,

I have tweaked my responses. Would the following be compliant now?

003 SELECT Folder
* FLAGS (\Answered \Flagged \Deleted \Seen)
* 2 EXISTS
* 0 RECENT
* OK [UNSEEN 1] Message 1 is the first unseen
* OK [UIDVALIDITY 1] UIDs VALID
* OK [UIDNEXT 26] UIDs VALID
* PERMANENTFLAGS ()
003 OK [READ-ONLY] SELECT COMPLETED

004 STORE 1 FLAGS (\seen)
* 1 FETCH ()
004 OK STORE Completed but I ignored you because this is read only

005 STORE 1 +FLAGS.silent (\seen)
005 OK STORE Completed but I ignored you because this is read only

006 UID STORE 25 FLAGS (\seen)
* 2 FETCH (UID 25)
006 OK STORE Completed but I ignored you because this is read only


Thank you for your time, it is greatly appreciated.

Regards

Richard Bang
Floosietek Ltd
[EMAIL PROTECTED]
http://www.floosietek.com





RE: FLAGS clarification

2003-12-10 Thread Larry Osterman
That looks pretty good to me :)

Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Richard Bang
Sent: Wednesday, December 10, 2003 8:54 AM
To: [EMAIL PROTECTED]
Subject: RE: FLAGS clarification

Hi,

Here is the final version, thanks for all the feedback on this. I hope
that this proves to be acceptable and is compliant.

003 SELECT Folder
* FLAGS (\Answered \Flagged \Deleted \Seen)
* 2 EXISTS
* 0 RECENT
* OK [UNSEEN 1] Message 1 is the first unseen
* OK [UIDVALIDITY 1] UIDs VALID
* OK [UIDNEXT 26] UIDs VALID
* PERMANENTFLAGS ()
003 OK [READ-ONLY] SELECT COMPLETED

004 STORE 1 FLAGS (\Seen)
* 1 FETCH (FLAGS (\seen) UID 12)
004 OK STORE Completed but only for this session

005 STORE 1 +FLAGS.silent (\dEleted)
005 OK STORE Completed but only for this session

006 UID STORE 25 FLAGS (\seen)
* 2 FETCH (FLAGS (\seen) UID 25)
006 OK STORE Completed but only for this session

007 STORE 2 +FLAGS.silent (\answered)
007 OK STORE Completed but only for this session

008 UID fetch 1:* (FLAGS)
* 1 FETCH (FLAGS (\seen \deleted))
* 2 FETCH (FLAGS (\seen \answered))
008 OK FETCH Completed

009 close
009 OK CLOSE completed

010 SELECT Folder
* FLAGS (\Answered \Flagged \Deleted \Seen)
* 2 EXISTS
* 0 RECENT
* OK [UNSEEN 1] Message 1 is the first unseen
* OK [UIDVALIDITY 1] UIDs VALID
* OK [UIDNEXT 26] UIDs VALID
* PERMANENTFLAGS ()
010 OK [READ-ONLY] SELECT COMPLETED

011 UID fetch 1:* (FLAGS)
* 1 FETCH (FLAGS ())
* 2 FETCH (FLAGS ())
011 OK FETCH Completed

Regards

Richard Bang
Floosietek Ltd
[EMAIL PROTECTED]
http://www.floosietek.com




RE: FLAGS clarification

2003-12-10 Thread Larry Osterman
I can't possibly imagine a correctly written client that would assume
that flags would persist across a close/expunge command -  When the
client issues the SELECT command it should completely reset its internal
state for the mailbox.


Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Richard Bang
Sent: Wednesday, December 10, 2003 10:12 AM
To: [EMAIL PROTECTED]
Subject: RE: FLAGS clarification

Hi,

 Why did you issue a CLOSE command?  Did the server expunge
 message 1 (UID
 12) as a result?

 It's actually alright if the server didn't expunge message 1
 (UID 12); the
 server has the right to disregard an EXPUNGE.  But the client
 intent is
 different.

I was trying to show that the server did not EXPUNGE because it was read
only and subsequently the flags were
cleared.

Larry Osterman wrote:
There are clients that rely on the fact that flags can be set and later
retrieved on the same session.  The flags don't need to be persisted
but
they DO need to be maintained for the current session.

Hmm, I considered the session to be closed from the point of view of the
folder when the folder is deselected, as per my example. Is this
incorrect and does this mean that in theory I should maintain sessions
flags for all the folders until a logout?

Thanks Richard.





RE: Exchange server has a broken SASL implementation

2003-10-27 Thread Larry Osterman
Yup, if there were a test suite (or if we were told about clients that
implemented SMTP/SASL) we'd have used it.

The test team goes through a fair amount of effort to ensure that we
interoperate with just about any clients that we know about.  And we run
any tests we can find, internal or external.


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Arnt Gulbrandsen
Sent: Monday, October 27, 2003 9:15 AM
To: Ken Murchison
Cc: IMAP Interest List; Mark [EMAIL PROTECTED]
Subject: Re: Exchange server has a broken SASL implementation

Ken Murchison writes:
 Mark Crispin wrote:
 Yet more proof that the SASL specifications as currently constituted 
 are too complex, and why IMAP should not add initial-response until 
 the SASL specifications are fixed.

 Or its more proof that M$ doesn't care about specs and choose to 
 [re]define then as they see fit.

Do not attribute to malice that which can be adequately explained by 
ignorance/release pressure/lack of time/blah/blah. So far, every 
Microsoft programmer I've spoken to seemed to try hard. (I'm not saying 
they succeed, but I _am_ saying they don't seem a malicious bunch.)

We're talking about a set of interrelated documents that are light on 
examples and free of a test suite. I'm not greatly surprised that 
people have trouble implementing them correctly.

(Larry: if there were a test suite for SMTP/SASL, would Microsoft have 
used it?)

--Arnt


Interesting bounce mail (Warning, OT)

2003-10-27 Thread Larry Osterman








I just received the attached bounce message from the mail I
sent. 



I dont know who generated it, but it may possibly be
the WORST bounce message Ive ever seen.



Heres the headers as received by our email system:



Microsoft Mail Internet Headers Version 2.0

Received: from df-snowy.platinum.corp.microsoft.com
([10.197.0.106]) by DF-DINGO.platinum.corp.microsoft.com with Microsoft
SMTPSVC(6.0.3790.1069);

 Mon, 27 Oct 2003 09:36:25 -0800

Received: from DF-VRS-01.redmond.corp.microsoft.com
([157.54.4.14]) by df-snowy.platinum.corp.microsoft.com with Microsoft
SMTPSVC(5.0.2195.6713);

 Mon, 27 Oct 2003 09:36:24 -0800

Received: from 10.197.0.48 by DF-VRS-01.redmond.corp.microsoft.com
(InterScan E-Mail VirusWall
 NT); Mon, 27 Oct 2003 09:36:24
-0800

Received: from mx0.ftgate.com ([195.224.16.237]) by
exchange.microsoft.com with Microsoft SMTPSVC(6.0.3790.1069);

 Mon, 27 Oct 2003 09:36:23 -0800

Date: Mon, 27 Oct 2003 17:34:05 +

Message-Id: [EMAIL PROTECTED]

from: Mail Daemon  

to: [EMAIL PROTECTED]

subject: Delivery Failed: RE: Exchange server has a broken
SASL implementation

Mime-Version: 1.0

Content-Type: multipart/mixed;
boundary==_NextPart_f031027173405599F

Return-Path: 

X-OriginalArrivalTime: 27 Oct 2003 17:36:23.0946 (UTC)
FILETIME=[D7751EA0:01C39CB0]



--=_NextPart_f031027173405599F

Content-Type: text/plain; charset=us-ascii

Content-Transfer-Encoding: 7bit





--=_NextPart_f031027173405599F



Note that there is almost NOTHING that identifies which
email system originated the email message  all Ive got is that it
came from mx0.ftgate.com.



Sigh. Why on earth did this company waste the bandwidth on
a spam announcement that had NO information of value in it.








---BeginMessage---
Title: Delivery Failed: RE: Exchange server has a broken SASL implementation






Hi,

This is an automated message.


Your message: %subject%

has been rejected bacause it passed through an internet server known to be an open relay to SPAM and it did not contain any references to any of our products.

If this is an error please resubmit your message and include the name of the product you are refering to.


Thank you.



---End Message---


RE: Exchange server has a broken SASL implementation

2003-10-27 Thread Larry Osterman
Hmm.  I just realized I forgot my normal caveat:  I don't work in
Exchange, and haven't for about 4 years now, and it's been 6 years since
I worked on IMAP products in Exchange.  So anything I said isn't a
commitment for the Exchange organization, it's just my personal opinion,
based on what I know about the people in Exchange who are doing the
testing/development of Exchange.

I certainly take SIGNIFICANT offense at Ken's comment; I'd love for him
to give a real-world example of a WILLFUL misinterpretation of the
specifications from Microsoft, as he implied by his comment.  I've seen
lots of instances of stupidity/ignorance, but none of WILLFUL
misinterpretations.  His comment is a slap at the integrity of the
developers of Exchange/SMTP (at least in E2K, the SMTP service used by
Exchange was a deliverable of the NT group, not Exchange).

I'll be the first to say that Microsoft hasn't been NEARLY as
forthcoming with it's specifications (I've been trying to get a NTLM
SASL profile published for 7 years now, only to be rebuffed at every
turn), and we've certainly screwed up enough (not fixing the the AUTH=
stuff for SMTP auth is a good example).  



-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Larry Osterman
Sent: Monday, October 27, 2003 9:35 AM
To: Arnt Gulbrandsen; Ken Murchison
Cc: IMAP Interest List; Mark [EMAIL PROTECTED]
Subject: RE: Exchange server has a broken SASL implementation

Yup, if there were a test suite (or if we were told about clients that
implemented SMTP/SASL) we'd have used it.

The test team goes through a fair amount of effort to ensure that we
interoperate with just about any clients that we know about.  And we run
any tests we can find, internal or external.


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Arnt Gulbrandsen
Sent: Monday, October 27, 2003 9:15 AM
To: Ken Murchison
Cc: IMAP Interest List; Mark [EMAIL PROTECTED]
Subject: Re: Exchange server has a broken SASL implementation

Ken Murchison writes:
 Mark Crispin wrote:
 Yet more proof that the SASL specifications as currently constituted 
 are too complex, and why IMAP should not add initial-response until 
 the SASL specifications are fixed.

 Or its more proof that M$ doesn't care about specs and choose to 
 [re]define then as they see fit.

Do not attribute to malice that which can be adequately explained by 
ignorance/release pressure/lack of time/blah/blah. So far, every 
Microsoft programmer I've spoken to seemed to try hard. (I'm not saying 
they succeed, but I _am_ saying they don't seem a malicious bunch.)

We're talking about a set of interrelated documents that are light on 
examples and free of a test suite. I'm not greatly surprised that 
people have trouble implementing them correctly.

(Larry: if there were a test suite for SMTP/SASL, would Microsoft have 
used it?)

--Arnt


RE: LIST

2003-09-18 Thread Larry Osterman
Sorry, was off the list for a bit and just came back.

One really simple example of a store that has \NoSelect name with
children is the NNTP store.  An IMAP server that exposes an NNTP
hierarchy exposes comp.mail.imap even though there is no comp newsgroup
- such a store has to expose comp as a \NoSelect mailbox with children.





-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Mark Crispin
Sent: Tuesday, September 16, 2003 7:37 AM
To: Rob Siemborski
Cc: Lawrence Greenfield; IMAP protocol mailing list
Subject: Re: LIST

On Tue, 16 Sep 2003, Rob Siemborski wrote:
 I suppose this depends on your definition of harmless.  I wouldn't
want a
 server that doesn't do this declared at all noncompliant.

Agreed; there is no harm in not doing this if the server does not have
have such a thing as a \NoSelect name without children.  Such servers
aren't noncompliant (sorry for the double negative).

But we do have to consider the case when a server has \NoSelect names
without children.

 I do not believe it is harmless in pathological cases like LIST */%
 where the output could be needlessly doubled by such behavior.  Of
course,
 this is a pathological case.

I don't think that we need to consider pathological cases; a client
which
invoked this gets what it deserves.

 Indeed, I'd argue such a server (which does not have the \NoSelect
with no
 children case) is equally correct with an implementation that does not
 omit foo/ from the list, since none of this special treatment of
trailing
 hierarchy delimiters (outside of CREATE) is discussed in the protocol
 specifications.

That is a problem; doing so creates ambiguity and misleads clients into
incorrect behavior.  We should not be recklessly making IMAP more
ambiguous and less useful.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.




RE: a synchronization issue

2003-09-11 Thread Larry Osterman

On Thu, 11 Sep 2003, Marcel Crasmaru wrote:
 c1: a store 1 +flags (\Deleted)
 s : * 1 FETCH (FLAGS (\Deleted) UID 3)
 s : a OK store

So far, so good.

 c2: aa store 2 +flags.silent (\Deleted)
 s : * 1 FETCH (FLAGS (\Deleted) UID 3)
 s : aa OK store

The FETCH response is wrong.  The change was to message 2, not
message 1.
Presumably you meant:
  c2: aa store 2 +flags.silent (\Deleted)
  s : * 2 FETCH (FLAGS (\Deleted) UID 4)
  s : aa OK store

 c1: b expunge

Mark, are you sure?  On the c2 command, it's a flags.silent store, the *
1 FETCH response is retrieving the change from c1's store 1 +flags
(\Deleted) command, so it should be retrieving the fact that 1's flags
changed.

Larry Osterman 



RE: a synchronization issue

2003-09-11 Thread Larry Osterman
Never mind this - enough other people have heaped on this issue already
:)  Sorry bout that...

Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Larry Osterman
Sent: Thursday, September 11, 2003 10:35 AM
To: Mark Crispin; Marcel Crasmaru
Cc: [EMAIL PROTECTED]
Subject: RE: a synchronization issue


On Thu, 11 Sep 2003, Marcel Crasmaru wrote:
 c1: a store 1 +flags (\Deleted)
 s : * 1 FETCH (FLAGS (\Deleted) UID 3)
 s : a OK store

So far, so good.

 c2: aa store 2 +flags.silent (\Deleted)
 s : * 1 FETCH (FLAGS (\Deleted) UID 3)
 s : aa OK store

The FETCH response is wrong.  The change was to message 2, not
message 1.
Presumably you meant:
  c2: aa store 2 +flags.silent (\Deleted)
  s : * 2 FETCH (FLAGS (\Deleted) UID 4)
  s : aa OK store

 c1: b expunge

Mark, are you sure?  On the c2 command, it's a flags.silent store, the *
1 FETCH response is retrieving the change from c1's store 1 +flags
(\Deleted) command, so it should be retrieving the fact that 1's flags
changed.

Larry Osterman 





RE: \NoSelect

2003-09-10 Thread Larry Osterman
Uh yeah - what he said :)  I just can't type.


Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Mark Crispin
Sent: Wednesday, September 10, 2003 3:13 PM
To: Larry Osterman
Cc: [EMAIL PROTECTED]
Subject: RE: \NoSelect

On Wed, 10 Sep 2003, Larry Osterman wrote:
 My take is that this is a bug of Mozilla - \NoSelect means exactly
what
 it says - the mailbox has no inferiors.
 can not be selected

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.




RE: which server implements IMAP referals these days RFC2193?

2003-09-03 Thread Larry Osterman
And the exchange server of course does it as well - for login referrals
at a minimum.

Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Rob Siemborski
Sent: Wednesday, September 03, 2003 10:32 AM
To: Arnaud Taddei
Cc: [EMAIL PROTECTED]
Subject: Re: which server implements IMAP referals these days RFC2193?

The Cyrus IMAP Aggregator frontends use it when the client makes it
clear
that it will support it (for example, by issuing an RLIST/RLSUB
command).

-Rob

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Rob Siemborski | Andrew Systems Group * Research Systems Programmer
PGP:0x5CE32FCC | Cyert Hall 207 * [EMAIL PROTECTED] * 412.268.7456
-BEGIN GEEK CODE BLOCK
Version: 3.12
GCS/IT/CM/PA d- s+: a-- C$ ULS$ P+++$ L+++() E W+ N o? K-
w O- M-- V-- PS+ PE++ Y+ PGP+ t+@ 5+++ R@ tv-@ b+ DI+++ G e h r- y?
--END GEEK CODE BLOCK-





RE: IMAP not good enough?

2003-08-15 Thread Larry Osterman
You're confusing a protocol and an interoperable protocol.  Both are
protocols, a protocol is just another word for format of bits on the
wire.



 -Original Message-
 From: Arnt Gulbrandsen [mailto:[EMAIL PROTECTED] 
 Sent: Friday, August 15, 2003 4:18 AM
 To: Pete Maclean
 Cc: Larry Osterman; IMAP protocol mailing list
 Subject: Re: IMAP not good enough?
 
 
 Pete Maclean writes:
  The Exchange protocol is orders of magnitude richer than IMAP, but
  it's not standard (which is why it's totally proprietary :)).
 
  But is it fair to say that the Exchange protocol is a 
 protocol in the
  same sense as IMAP, or even a true protocol at all?
 
 Not in the same sense. Making two programs from the same organization 
 talk to each other is easy peasy compared with making many and 
 different programs from many independent and competing organizations 
 interoperate. Both technically and politically.
 
 Whether it's a protocol at all... I guess that hinges on the 
 definition 
 of protocol. Doesn't really matter, does it?
 
 --Arnt
 


RE: IMAP not good enough?

2003-08-15 Thread Larry Osterman
Actually I've got to point out that the two teams in this case aren't
close together - in fact their ship cycles are radically different,
which is why the Exchange RPC protocol is essentially unchanged after 8
years :)


 -Original Message-
 From: Arnt Gulbrandsen [mailto:[EMAIL PROTECTED] 
 Sent: Friday, August 15, 2003 4:23 AM
 To: Larry Osterman
 Cc: IMAP protocol mailing list
 Subject: Re: IMAP not good enough?
 
 
 Larry Osterman writes:
  My statement was intended to be a value-neutral statement - the
  proprietary protocols have more features than the open standard 
  protocols.
 
 Naturally. It's much easier for two teams sitting in adjacent 
 offices to 
 agree on how to add a feature and get it done than it is for n 
 independent, competing organizations.
 
 Nothing in life is free. If I (as customer) buy tighter 
 integration, it 
 becomes harder to change one component later. On the other hand, if I 
 buy interoperability, tighter integration is hard/expensive.
 
 --Arnt
 


RE: IMAP not good enough?

2003-08-15 Thread Larry Osterman
Ok, mine agrees with mine :)

http://dictionary.reference.com/search?q=protocol

pro·to·col( P )  Pronunciation Key  (prt-kôl, -kl, -kl)
n. 

Computer Science. A standard procedure for regulating data transmission between 
computers. 

The only part of disagreement is the bit about standard.  It doesn't say open 
standard.   :)



 -Original Message-
 From: Arnt Gulbrandsen [mailto:[EMAIL PROTECTED] 
 Sent: Friday, August 15, 2003 9:21 AM
 To: Larry Osterman
 Cc: Pete Maclean; IMAP protocol mailing list
 Subject: Re: IMAP not good enough?
 
 
 Larry Osterman writes:
  You're confusing a protocol and an interoperable protocol.
 
 I'm not. I'm saying X and Y aren't protocols in the same 
 sense of the word.
 
  Both are protocols, a protocol is just another word for format of
  bits on the wire.
 
 My dictionary disagrees with you. Personally I don't have an opinion.
 
 --Arnt
 


RE: IMAP not good enough?

2003-08-14 Thread Larry Osterman
Trust Larry to stick his foot squarely in his mouth and reply to this
one :)


IMHO, Steve's exactly right.

Remember that Steve's comparing the proprietary Exchange MAPI RPC
protocol with the IMAP protocol.

The Exchange protocol is orders of magnitude richer than IMAP, but it's
not standard (which is why it's totally proprietary :)).

For example, it natively supports calendaring, threading, asynchronous
notifications, multiple message stores, incremental content
synchronization (at the property level), multiple simultaneous client
access, public and private message folder stores, etc.  It also supports
compression of the wire format, encryption of the datastream, etc.  It
allows message submission with rich message send options (deferred send,
etc).  It allows for message filtering, client and server side rules,
etc.  It allows for content indexing, dynamic searching and sorting of
the message store.  It allows for notifications of new folder creation
and deletion.  

Many of these things can be done with IMAP, but rely on extensions to
both IMAP and SMTP.


So Steve's 100% right - IMAP isn't NEARLY as rich as the proprietary
Exchange protocol.  But that shouldn't be a surprise to anyone.  Open
standards are almost never as rich as the proprietary ones (x.400 is
just about the only one I can think of - almost nobody implements all of
x.400 :)).  Open standards almost always are written to the lowest
common denominator.   As a really simple example, how many times has MRC
mentioned that a particular feature can't be implemented because the
legacy Unix message store can't support that feature?  As a corollary,
how many times has a client vendor wanted to implement some cool feature
but discovered that the protocol didn't allow it?  Proprietary systems
don't have that problem - since it's a proprietary system, the protocol
can simply be changed (if you care about legacy clients, you need to
make sure that the change is upwards compatible, but...).


The single major advantage of open protocols is that they're open.  It
means that you're not locked into a single vendor or a single client.
In addition, it is feasible for there to be open source implementations
of open standards; open source implementations of proprietary standards
are extremely hard to do (ask Jeremy Allison about that sometime :)).
In general, open standard protocols tend to be better documented than
closed standards.  The price you pay for that flexibility is that your
client experience usually isn't as rich as it is with the proprietary
solutions.



Btw, in case anyone thinks that I'm just touting Exchange because I'm
Microsoft, this exact same argument can be made about Lotus Notes, or
Groupwise, or any of the other large scale proprietary email systems -
with their proprietary clients, they all support a significantly richer
user experience than they do with their open standard clients. 



Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Timo Sirainen
Sent: Thursday, August 14, 2003 9:29 AM
To: Cyrus Daboo
Cc: [EMAIL PROTECTED]
Subject: Re: IMAP not good enough?

On Thursday, Aug 14, 2003, at 18:56 Europe/Helsinki, Cyrus Daboo wrote:

 I don't want to start a flame war of any kind but I think the 
 following quote (which I saw quoted on comp.mail.imap) deserves some 
 response from the IMAP community, if only to re-evaluate IMAP's 
 strengths and weaknesses:

 IMAP is just not a very rich protocol, Steve Conn, Exchange Server 
 product manager, told ZDNet Australia during the company's Tech Ed 
 conference.

I find that pretty strange argument against IMAP, assuming rich means 
featureful. I'd say IMAP's biggest weakness is that the protocol is 
too difficult to understand and there's too many ways to mess up 
implementations accidentally.

I've been thinking about writing some pretty detailed guide to client 
writers, so that it would actually say what you're supposed to send to 
server, reasons why it can fail and how you're supposed to handle 
potential failures. But it's quite a lot of work and I don't know when 
I have time for it.





RE: IMAP not good enough?

2003-08-14 Thread Larry Osterman
It was not my intent to disparage IMAP.  I i love / IMAP.  I really
do.

But if you believe that IMAP is as flexible/feature rich as the
proprietary protocols, then you're not facing reality.  IMAP is great
for what it does, and I actually agree with Timo - in many ways it's too
complicated.  But it doesn't have the feature set of a proprietary
protocol.  


My statement was intended to be a value-neutral statement - the
proprietary protocols have more features than the open standard
protocols.



Oh, and I can't resist: Btw, Exchange and the Exchange proprietary
protocol don't support worms or Word macro viruses either :)

It's the broken clients that support them.  I could write an IMAP client
that supports worms and Word macro viruses if I wanted to.  It wouldn't
even be that hard (all I'd have to do is to run mime/html mail in the
trusted sites zone).  

Larry Osterman 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Andreas Aardal Hanssen
Sent: Thursday, August 14, 2003 10:21 AM
To: IMAP protocol mailing list
Subject: RE: IMAP not good enough?

On Thu, 14 Aug 2003, Larry Osterman wrote:
Trust Larry to stick his foot squarely in his mouth and reply to this
one :)
The Exchange protocol is orders of magnitude richer than IMAP, but it's
not standard (which is why it's totally proprietary :)).

There evidently goes a fine line between richness and bloat. Anyone can
put anything into a protocol, and if they are paid to do so they will
not
hold back.

After all, when all is done inside one company, nobody has to think
about
interoperability and design. Some protocols even have obfuscation layers
to prevent reverse engineering.

IMAP is a mail protocol. In that respect, it is very rich and very
extensible. No, IMAP does not support calendaring. I doesn't even
support
worms or Word macro viruses! Still so many find it useful.

I have worked with a multitude of proprietary protocols that suck big
time, while still being rich and full of features. So I don't support
your
implicit distinction between marvelous proprietary protcols and poor
open
ones.

Andy

-- 
Andreas Aardal Hanssen
http://www.bincimap.org/





RE: IMAP not good enough?

2003-08-14 Thread Larry Osterman
I did say that most of these features are available with extensions,
didn't I?  

Please, I'm not trying to start an Exchange protocol vs IMAP protocol.
I'd have used the Lotus Notes feature set if I knew it.  The discussion
is ONLY about Steve Conn's comments about IMAP not being as feature rich
as IMAP (which was used as a part of a justification for ceasing forward
development of Outlook Express).  And any responses I'm making are in
the context of what Outlook Express needs to support, NOT what a
hypothetical tightly linked open protocol client/server solution would
require.





Also, for clarifications on Timo's comments:

 asynchronous notifications,

Of what? Sieve + [ALERT]s could be a nice kludgy way to do that
:) 
Anyway, probably more related to calendaring than emails.

The IMAP equivilant extension for what I was describing is actually
IDLE.

 multiple simultaneous client access,

As does IMAP.
Only with certain message stores and only with certain servers.  You
can't guarantee the feature.  And Outlook Express (the client in
question) can't assume a single IMAP server - it can only use the
features available in ALL the servers.  And since not every server
supports simultaneous client access, it technically shouldn't support
it.


 It allows for message filtering, client and server side rules,
etc.

What does client side rules have to do with protocol? Sieve for
server 
side.

Nothing - but your client side rules are actually stored on the server
with Exchange so even though they are executed on the client, they're
available for all clients.

 dynamic searching

There's SEARCH? (though I still wish for the non-exact text
searching 
extension)

Actually I'm referring to Exchange's search folders - basically you can
create a search folder on the store, and whenever a message is created
that matches the search criteria, the message gets added to the folder,
and the client is notified about the new message automagically.  SEARCH
is static.



Larry Osterman 




RE: IMAP not good enough?

2003-08-14 Thread Larry Osterman
Thank you Cyrus, you make really good point.  And also, to bring this
back to Outlook Express (since that was the original client
mentioned)...

In order to provide the same experience you can get with Outlook in
proprietary mode, you'd need to have an email server that implemented
ALL of the below mentioned protocols and extensions.

And Outlook Express is a consumer product - it's intended for Abby (a
persona that represents the typical AOL mom).  The OE team can't deploy
a feature set that depends on protocol extensions that may or may not
exist on the server, it also has to code for the lowest common
denominator - which means that it's stuck with the base IMAP
specification (which is what it knows exists).  Most ISPs don't offer
ACAP, or SIEVE (heck, most ISPs don't offer IMAP).

Larry Osterman 


-Original Message-
From: Cyrus Daboo [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 14, 2003 10:43 AM
To: Larry Osterman; Timo Sirainen
Cc: [EMAIL PROTECTED]
Subject: RE: IMAP not good enough?

Hi Larry,

--On Thursday, August 14, 2003 10:03:46 AM -0700 Larry Osterman 
[EMAIL PROTECTED] wrote:

| The Exchange protocol is orders of magnitude richer than IMAP, but
it's
| not standard (which is why it's totally proprietary :)).
|
| For example, it natively supports calendaring, threading, asynchronous
| notifications, multiple message stores, incremental content
| synchronization (at the property level), multiple simultaneous client
| access, public and private message folder stores, etc.  It also
supports
| compression of the wire format, encryption of the datastream, etc.  It
| allows message submission with rich message send options (deferred
send,
| etc).  It allows for message filtering, client and server side rules,
| etc.  It allows for content indexing, dynamic searching and sorting of
| the message store.  It allows for notifications of new folder creation
| and deletion.
|
| Many of these things can be done with IMAP, but rely on extensions to
| both IMAP and SMTP.
|

I think the problem here is that the comparison shouldn't be between 
Exchange and IMAP, but rather Exchange and {the set of open standards 
protocols designed to implement messaging and collaboration - i.e. IMAP,

POP, SMTP, ICAP, SIEVE etc with corresponding standard extensions}. Even

with those others added in, its true that Exchange is still ahead in
terms 
of features, but the gap isn't as wide as one might think.

The real question is whether the current design of multiple open
standards 
protocols for implementing messaging and collaboration is the best 
approach, as opposed to having a single modularized monolithic protocol
to 
do all that. As an implementor, it is a pain to have to add support for
a 
completely new protocol to just add calendaring (something I'm actually 
having to do right now). We're also beginning to see the need for a
certain 
amount of 'overlap' between protocols (c.f. lemonade WG issues with 
submission via IMAP).

So what are the real pro's and con's between monolithic protocol vs 
multiple task-specific protocols? And is that the real limitation in
terms 
of 'richness' that we are seeing here?

-- 
Cyrus Daboo




RE: IMAP not good enough?

2003-08-14 Thread Larry Osterman
It's a true protocol because it's a wire format.  In Exchange's case,
the Exchange RPC interface consists of Send this buffer filled with
opaque bits to the server and get me a response buffer.  All the smarts
are packed into the buffer with opaque bits.

So yeah, it's a protocol.  RPC is used for authentication, encryption,
transport independence and session management but that's about it.

Larry Osterman 


-Original Message-
From: Pete Maclean [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 14, 2003 10:51 AM
To: Larry Osterman
Cc: [EMAIL PROTECTED]
Subject: RE: IMAP not good enough?


IMHO, Steve's exactly right.

Remember that Steve's comparing the proprietary Exchange MAPI RPC
protocol with the IMAP protocol.

The Exchange protocol is orders of magnitude richer than IMAP, but it's
not standard (which is why it's totally proprietary :)).

But is it fair to say that the Exchange protocol is a protocol in the
same 
sense as IMAP, or even a true protocol at all?  I am not meaning to
suggest 
these things, I am really asking.  The reason is because, it seems to
me, 
RPC is really the protocol and what you can do over RPC is so unlimited
it 
seems hardly appropriate to call that a protocol.  Am I off base here?

Pete Maclean






RE: Outlook, ipop3d, filed mail

2003-08-04 Thread Larry Osterman
Ok, I'm going to bite here.

So it appears to me that you're complaining that when you enable the
Leave a copy of the message on the server that the POP3 client leaves
a copy of the message on the server?

The default behavior for IMAP is to download the message from the
server, the Leave a copy of the message on the server option is in the
client to allow you to run POP3 clients from multiple locations - in
which case each location gets its own copy of the email.  But a
corollary of this behavior is that none of the clients delete the mail
from the server unless they are instructed to manually delete the mail.

Back when I was testing Eudora, Netscape, et al, they all had an option
to do this and they all seemed to do just about the same thing.


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
 Behalf Of Toby Wahlers
 Sent: Friday, August 01, 2003 1:35 PM
 To: [EMAIL PROTECTED]
 Subject: Outlook, ipop3d, filed mail
 
 I was wondering if anyone else had run into this problem:
 
When an Outlook (or OE) POP3 user files mail locally, the message
 disappears from the local Inbox.  But remains in their server mail
 file.  Eventually, hundreds, thousands (millions?) of messages reside
on
 the server, none of which are shown in Outlook. Eudora, Mozilla, etc
don't
 appear to exhibit this...er...behavior.  It only happens when you have
the
 POP3 account set to leave a copy of the message on the server.
 
 IMAP in Outlook works correctly, it seems.  The workaround for POP3 is
to
 set the account to Remove from server when deleted from Deleted
Items,
 copy/paste messages into the desired local mailbox when filing, delete
the
 messages out of the Inbox, then select Empty Deleted Items folder.
 
 I wouldn't think that ipop3d would be involved, since messages do get
 deleted correctly with the procedure above.
 
 --
 -
  For information about this mailing list, and its archives, see:
  http://www.washington.edu/imap/imap-list.html
 -
 




RE: Recent flags

2003-08-04 Thread Larry Osterman
Several people have pointed out in the past that the \Recent flag
doesn't work when you have more than one client accessing a mailbox
simultaneously, you've just pointed out another problem where this
occurs.
 
The bottom line is that you can't rely on \Recent to highlight messages,
you need to rely on \Seen, since it is a persistent flag (\Recent isn't,
it's more of a virtual flag).





 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
 Behalf Of Timo Sirainen
 Sent: Saturday, August 02, 2003 5:19 PM
 To: [EMAIL PROTECTED]
 Subject: Recent flags
 
 A month ago here was this discussion about new mail notification in
 mailboxes. I started thinking about it some more how I'd want the
 client's user interface to behave.
 
 Recent counters are actually quite good. They do exactly what I want,
 but only as long as there's only one client having mailboxes SELECTed
at
 a time, which is usually not the case with me.
 
 The multiclient behaviour for \Recent simply sucks. Is there any real
 reason why it was specified as it was, except just to standardize some
 kind of server behaviour?
 
 I think the wanted \Recent flag behaviour is: Message arrived the
 mailbox after last user interaction in the same mailbox. Problem is
how
 the server would know which is user interaction and which is client
 doing things itself.
 
 I believe these rules should work quite well:
  - When mailbox is SELECTed, all the current messages will be
non-recent
 for subsequent sessions
  - When a message is marked \Seen (most likely a user interaction),
all
 the current messages will be non-recent for subsequent sessions
 (possibly \Deleted flag as well? I'm not sure)
  - In all other cases the messages will be marked \Recent for all the
 sessions that have the mailbox selected, but also for next session(s)
 
 That gives the following behaviour:
 
 Client A has INBOX SELECTed, client B has FOOBOX SELECTed
  - A new mail arrives to INBOX
  - Client A notices it via NOOP, sees it as \Recent and notifies user
 about it by highlighting the mailbox name
  - Client B notices it via STATUS (RECENT), or with some new mail
 notification extension. Client B highlights the mailbox name as well
 
 a) User opens some of the new mails with client A, which changes it's
 \Seen flag.
  - Client A removes the highlight
  - Sometimes later Client B issues STATUS (RECENT) which now returns
0.
 The highlight is removed.
 
 b) User notices the new mails with client B, and selects the INBOX.
  - New mails are still seen as \Recent
  - Client B removes the highlight
  - Oops, problem: Client A doesn't know that the highlight should be
 removed.
 
 b's problem can be solved in a few ways:
  - Don't just mark the mail to be non-recent for subsequent sessions,
 also do it for all the current sessions by removing the \Recent flag
and
 sending decreased * n RECENT. I'd like this, but I suspect this might
 break something.
  - Client could create a separate session to ask STATUS (RECENT) for
the
 selected mailbox. Kludgy.
  - Client could re-SELECT the mailbox. Kludgy and expensive.
  - Client could issue LIST for the current mailbox and check if it has
 \Unmarked flag.
 
 LISTing would probably be the best thing to do, but if server shows
 neither \Marked nor \Unmarked, it doesn't solve the problem. Luckily
 it's not too bad - it's only for selected mailbox.
 
 Note that I don't consider any of these \Recent flag behaviour changes
 to be non-compliant with current RFC, since it has this nice clause:
 
If it is not possible to determine whether or not this
session is the first session to be notified about a
message,
then that message SHOULD be considered recent.
 
 My server just doesn't happen to always know when the recent
 notification was sent :)
 
 
 --
 -
  For information about this mailing list, and its archives, see:
  http://www.washington.edu/imap/imap-list.html
 -
 




RE: Recent flags

2003-08-04 Thread Larry Osterman
My inbox also has lots of unseen messages, I feel your pain :)

I think you're right - the protocol behavior change you are proposing
(to change the behavior of the \Recent flag to be more persistant) is
almost certain to break clients, all the other changes might work, but
they require client changes and thus can't be fixed on the server.

Also, LIST is very expensive, as is status (for some mailbox formats).


 -Original Message-
 From: Timo Sirainen [mailto:[EMAIL PROTECTED]
 Sent: Monday, August 04, 2003 12:52 PM
 To: Larry Osterman
 Cc: [EMAIL PROTECTED]
 Subject: RE: Recent flags
 
 On Mon, 2003-08-04 at 22:26, Larry Osterman wrote:
  Several people have pointed out in the past that the \Recent flag
  doesn't work when you have more than one client accessing a mailbox
  simultaneously, you've just pointed out another problem where this
  occurs.
 
 What other problems are there beside what I described? I think my
 solution would fix it to behave reasonably well.
 
  The bottom line is that you can't rely on \Recent to highlight
messages,
  you need to rely on \Seen, since it is a persistent flag (\Recent
isn't,
  it's more of a virtual flag).
 
 \Seen isn't really useful for me. I often leave mails unseen to
indicate
 that it needs some further action. I guess some other flags would work
 as well but \Seen is the only flag that works with all clients. My
INBOX
 has 142 unseen mails currently. Also I don't read mails in some high
 volume mailing lists, so unseen counters are useless there as well.
 Recent counters would work very well with both cases to indicate when
 new mail has arrived.
 
 




RE: Recent flags

2003-08-04 Thread Larry Osterman
The biggest problem with LIST is that LIST with wildcards can be
insanely expensive on some servers.  List without a wildcard should be
relatively inexpensive, but if you use wildcards, some mail stores (like
the Exchange store) need to iterate over ALL the mailboxes in the
message store to determine if the mailbox name matches the search
criteria.


 -Original Message-
 From: Timo Sirainen [mailto:[EMAIL PROTECTED]
 Sent: Monday, August 04, 2003 1:57 PM
 To: Larry Osterman
 Cc: [EMAIL PROTECTED]
 Subject: Re: Recent flags
 
 On Monday, Aug 4, 2003, at 23:29 Europe/Helsinki, Larry Osterman
wrote:
 
  My inbox also has lots of unseen messages, I feel your pain :)
 
  I think you're right - the protocol behavior change you are
proposing
  (to change the behavior of the \Recent flag to be more persistant)
is
  almost certain to break clients, all the other changes might work,
but
  they require client changes and thus can't be fixed on the server.
 
 No, I don't see how they would require any client changes, assuming
 client already uses recent-counters. There's only small behavioural
 change in when recent counts would be dropped, it wouldn't require any
 specific support.
 
  Also, LIST is very expensive, as is status (for some mailbox
formats).
 
 STATUS can be, but LIST? It's specifically said in RFC that list
should
 be very inexpensive and I haven't yet heard of a server where this
 wouldn't be the case.
 
 The ideal implementation from performance point of view would probably
 be:
 
 LIST all visible mailboxes every n minutes
   - If mailbox is \Marked, it's known to have new messages. Highlight
it.
   - If mailbox is \Unmarked, it's known not to have new messages. If
 it's highlighted, remove it.
   - otherwise issue STATUS (RECENT), unless it's the active mailbox.
 Based on the result do like above.
 
 The evil implementation I'm planning to use myself is just to issue
 STATUS (UNSEEN RECENT) for all mailboxes since I want unseen-counts as
 well :)
 




RE: EXAMINE, SELECT, and FETCH FLAGS

2003-07-15 Thread Larry Osterman
One of the clients requires that if you do:

C: 1 STORE 1 +FLAGS (\Seen)
S: 1 OK Store completed

And then do:

C: 1 FETCH 1 FLAGS

The server respond with:
S: * 1 FLAGS (\Seen)
S: 1 OK Fetch completed


As opposed to failing the STORE.

It's been over 6 years since I worked on an IMAP server, so I'm not sure
which client it was that depended on the behavior.


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
 Behalf Of Timo Sirainen
 Sent: Tuesday, July 15, 2003 3:14 AM
 To: [EMAIL PROTECTED]
 Subject: RE: EXAMINE, SELECT, and FETCH FLAGS
 
 On Tue, 2003-07-15 at 01:34, Larry Osterman wrote:
  There are clients out there (I believe
  PINE is one of them, I know that Outlook Express is another) that
  require flags updates on read-only mailboxes, and if you carefully
read
  the spec's language on READ-ONLY and FLAGS, it's clear that the
server
  needs to maintain a dynamic shadow copy of the flags in the mailbox
on
  READ-ONLY mailboxes (which is what a mailbox opened with EXAMINE
is).
 
 Really? I was worried about that before, but then I noticed this in
 PERMANENTFLAGS:
 
  If the client
  attempts to STORE a flag that is not in the PERMANENTFLAGS
  list, the server will either ignore the change or store the
  state change for the remainder of the current session only.
 
 And what do you mean OE/Pine would require flags updates? They do try
to
 set them, but I don't notice any problems with actually using them.
 Although my server does send:
 
 * NO Mailbox is read-only, ignoring store..
 
 Which Pine displays all the time.. Maybe I shouldn't send it, or at
 least more than once.
 
 




RE: EXAMINE, SELECT, and FETCH FLAGS

2003-07-14 Thread Larry Osterman
#3 is clearly bogus.

I'd actually argue that #2 is the correct behavior.  When the first
FLAGS response is generated, the message isn't yet \Seen.  When the
FETCH is executed, the message is marked as being \Seen, and an untagged
FLAGS response is queued.  I can't explain why they don't generate a 3rd
untagged FLAGS response, my guess is that they are attempting to be
smart and collapse the 3rd FLAGS response with the 2nd FLAGS response
(which was auto-generated by the fetch BODY[].

#1 is more confusing - it also seems to be a bug in that the \Seen flag
is permanent but isn't included in PERMANENTFLAGS.\

The fact that the \Seen flag changes state on a fetch on an EXAMINE'ed
isn't a bug (actually it would be a bug if the \Seen flag DIDN'T change
state on read-only mailbox).  There are clients out there (I believe
PINE is one of them, I know that Outlook Express is another) that
require flags updates on read-only mailboxes, and if you carefully read
the spec's language on READ-ONLY and FLAGS, it's clear that the server
needs to maintain a dynamic shadow copy of the flags in the mailbox on
READ-ONLY mailboxes (which is what a mailbox opened with EXAMINE is).




 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
 Behalf Of Tim Showalter
 Sent: Monday, July 14, 2003 3:13 PM
 To: [EMAIL PROTECTED]
 Subject: EXAMINE, SELECT, and FETCH FLAGS
 
 Recently one of our customers migrating to one of our servers
discovered
 that another IMAP server had some interesting (mis)interpretations of
 the IMAP spec.  I'd like to get a clarficiation and perhaps badger the
 unnamed into making a change.
 
 (1) The \Seen flag was changed by FETCH [seq] (FLAGS BODY[]
 INTERNALDATE) while the mailbox was being EXAMINEd.  \Seen is not
 advertised in PERMANENTFLAGS in EXAMINE, but the change appears
 permanent.
 
 (2) FETCH [seq] (FLAGS BODY[] FLAGS) returns a FETCH response with
the
 obvious three items in that order.  The first FLAGS is ().  The
 second flags is (\Seen).  No implicit FLAGS response is returned
in
 this case under either SELECT or EXAINE.
 
 (3) As an extra bonus, I'm not sure how to turn \Seen flags off.
STORE
 [seq] -FLAGS (\Seen) seems like it ought to work, but it doesn't.
 Well, the server claims it does, but the flags are immediately
 re-set.
 
 A workaround for the first two this is to BODY.PEEK[] even in EXAMINE
 mode, or to send FLAGS before BODY[].  Either would have worked around
 the bug, but only the former would have avoided changing \Seen.
 Potential workarounds for (3) are more drastic.
 
 Thanks!
 
 Tim
 
 --
 -
  For information about this mailing list, and its archives, see:
  http://www.washington.edu/imap/imap-list.html
 -
 




RE: Out of range sequence sets in SEARCH

2003-07-09 Thread Larry Osterman
Actually I always assumed that the lack of a BAD response was simply
that the search untagged response was empty indicating that no message
was available that met the search criteria specified.

I remember MarkPu and I having a long debate about this when Mark was
implementing search in the Exchange server - we went back and forth and
decided that there was noting wrong in a client specifying an invalid
message ID number.

There is clearly something wrong with a client specifying an invalid
message sequence number in a fetch (since the client knows at all times
the number of messages in a mailbox), but that does not necessarily hold
true for search (although the reason for this currently escapes me).


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
 Behalf Of Mark Crispin
 Sent: Wednesday, July 09, 2003 10:28 AM
 To: Timo Sirainen
 Cc: [EMAIL PROTECTED]
 Subject: Re: Out of range sequence sets in SEARCH
 
 On Wed, 9 Jul 2003, Timo Sirainen wrote:
  Giving out of range sequence set for FETCH returns BAD error with
most
  IMAP servers, but why not with SEARCH? Is there a reason, which I
can't
  see in RFC, or is it just lack of error detection?
 
 The latter (lack of error detection).
 
 It is also possible to think that SEARCH does not actually reference a
 message the way FETCH does, and therefore failing to detect an out of
 range sequence in SEARCH is less of a problem.
 
 -- Mark --
 
 http://staff.washington.edu/mrc
 Science does not emerge from voting, party politics, or public debate.
 Si vis pacem, para bellum.




RE: date vs. date-time

2003-06-05 Thread Larry Osterman
IIRC, the reason is that for searches, it is very often useful to have a
search whose criteria is received on Tuesday as opposed to received
on Tuesday at 3:17PM


Larry Osterman 


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
 Behalf Of Arnt Gulbrandsen
 Sent: Wednesday, June 04, 2003 10:46 AM
 To: [EMAIL PROTECTED]
 Subject: date vs. date-time
 
 date-time is used a few times in the grammar, but in SEARCH date is
 used, e.g. SINCE date, not SINCE date-time. Is there any particular
 reason for that?
 
 Just curious.
 
 --Arnt
 --
 -
  For information about this mailing list, and its archives, see:
  http://www.washington.edu/imap/imap-list.html
 -
 




RE: date header semantics of bulletin board messages

2003-03-27 Thread Larry Osterman
A couple of comments below on E2K:
 3. Based on the above, and despite immutability of messages 
 and associated UIDs at the IMAP protocol level, a compliant 
 IMAP client may nevertheless choose to implement a user-level 
 model of editable body content for bulletin board posts. The 
 Exchange 2000 IMAP server is an example of this behavior:
 when post contents change, a new UID is generated, but the 
 original internal date is preserved and the original date is 
 also retained in the Date:
 field in the RFC2822 header. Note that while in the recent 
 mutability thread Larry Osterman mentioned changing message 
 content only in the context of unsent messages, post 
 editability is a first-class feature in Exchange, and has 
 nothing to do with draft/unsent messages. In 
 Outlook2000/Exchange2000, if the command New Post in This 
 Folder was used to create an item, then the command Revise 
 Contents is available whenever that item is opened (the 
 similar command Edit Message is available for mail 
 messages, in certain circumstances, but the post scenario is 
 my primary concern). While Outlook/Exchange may implement 
 post editability through proprietary means, it could be 
 implemented solely via IMAP using DELETE/EXPUNGE/APPEND, 
 where the APPEND command has a date/time string.

My message immutability comments were in the context of a users private
mail store and not the public store.  For the public store, when a
message is modified, a number of things happen to the message.

First, obviously the message gets a new UID.  In addition, the \Seen
flag is removed from the message for all other users, as a way of
informing other clients that the message has been modified.  This
actually falls out from the fact that per user read/unread state is kept
in a per-user CNSET (change number set, which is a data structure that
allows for the server to keep track of change numbers for internal
messages).  When a message is modified (the client calls SaveChanges()
on an open message), the change number on the message is bumped (and
thus it's no longer in the cnsetseen for the message).  That's also the
thing that causes the UID to be updated, fwiw.



Larry Osterman 

 




RE: Why is a message immutable?

2003-03-19 Thread Larry Osterman
 of such
a hypothetical table.  The table in question was written in 1982, and
it's STILL a part of NT.







This got WAY more long winded than I expected.  My point here is that
you can't just change the rules of a protocol on the fly after it's been
deployed, just like you can't change the rules for DOS applications
after the operating system has shipped.  It's too late, the cow's out of
the barn and the barn's long since burned down.


Similarly, you can't change the semantics of the \Recent flag, because
you'd break every existing client AND server implementation out there.
There's a mechanism defined in IMAP for indicating non-metadata changes
to a message, it's * n EXPUNGE/* m EXISTS.

If you want something about the message to change that's lightweight,
then you need to change the message metadata, NOT the contents of the
message.







Larry Osterman 

 




RE: Attachment message flag

2003-03-04 Thread Larry Osterman
One thing to keep in mind is that bodystructure may be quite expensive
to compute, but for a given UID, it's immutable, which means that the
server can cache the value of the bodystructure.  That in fact is what
the Exchange server does - since it's expensive to compute it, it only
ever computes the bodystructure on a message once.  Which means that
after an initial relatively expensive parse of the message, body and
bodystructure are both absolutely trivial to transmit to the client.


Don't forget that many message stores (including the exchange store)
don't/can't support custom message flags :)

Larry Osterman 

 

 
 -Original Message-
 From: Timo Sirainen [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, March 04, 2003 4:26 PM
 To: Larry Osterman
 Cc: [EMAIL PROTECTED]
 
 On Wed, 2003-03-05 at 01:46, Larry Osterman wrote:
  You're missing my point.
  
  This mailing list is about the PROTOCOL.  Discussions 
 should be about 
  are about what's best for the clients that are engineered 
 to use the 
  protocol and the servers that implement, not for those that 
 are using 
  subsets of the protocol.  As such, clients like OE and 
 Evolution are 
  poor choices to consider when discussing protocol design.
 
 Ah, sure. I was getting off topic there (or earlier), I just 
 meant that just make the server cache the bodystructure may 
 not be the best behaviour for server in all cases.
 
 Still, even if client does use BODYSTRUCTURE, I don't think 
 it's optimal behaviour to fetch it for all messages before 
 it's actually needed.
 
  I think it was Lyndon who pointed out that it's the client 
 that's best 
  suited to determine if a message has attachments or not - 
 the server 
  will almost always get it wrong.
 
 Right, it can't always say if the message has an attachment, 
 but for many cases it can say that it doesn't have attachment 
 (Content-Type:
 text/*).
 
 But I think I'll just use custom message flags for this if I 
 decide to not use BODYSTRUCTURE.
 
 
 


RE: LIST issues

2003-02-18 Thread Larry Osterman
In fact, the Exchange store returns the list of folders in a semi-random
order (actually they're roughly listed in the order of creation but
that's an artifact of the enumeration mechanism more than anything
else).

Any client that depends on ordering will absolutely break when they hit
the Exchange IMAP server.

Larry Osterman 

 

 
 -Original Message-
 From: Mark Crispin [mailto:[EMAIL PROTECTED]] 
 Sent: Tuesday, February 18, 2003 3:43 PM
 To: Timo Sirainen
 Cc: [EMAIL PROTECTED]
 
 On Tue, 19 Feb 2003, Timo Sirainen wrote:
  Must parent mailboxes be listed before their children? I don't see 
  this defined anywhere, but I know some clients will break 
 if they're not.
 
 There is no such requirement; and clients which presume such 
 are broken.
 
 UW imapd always lists parents before their children, but 
 that's an artifact of how it is implemented; in most of its 
 supported mail stores it is unaware of children until it is 
 aware of the parent.
 
 However, there is nothing that precludes a mail store from 
 working differently.  Consider a mail store in which the 
 names are flat, but by convention . is a hierarchy 
 delimiter and % breaks on ..  Unless that mail store is 
 careful to sort its names, a child could conceivably be 
 listed before a parent.
 
  Requesting LIST  mail/% from UW imapd shows also mail/ in the 
  reply, is this required?
 
 Yes.  RFC 2060, bottom of page 31:
 
   [...]  If the % wildcard
   is the last character of a mailbox name argument, 
 matching levels
   of hierarchy are also returned.  If these levels of 
 hierarchy are
   not also selectable mailboxes, they are returned with the
   \Noselect mailbox name attribute (see the description 
 of the LIST
   response for more details).
 
 Although the intent of this rule was for directories within 
 mail/ the zero or more characters matching rule for 
 wildcards requires that mail/ also match.
 
  I think this falls into the server implementations are 
 permitted to 
  hide.. clause? Are there any clients that break if this 
 isn't sent? 
  And is there any point in sending it anyway? I'd just have to add 
  extra code for that.
 
 I don't know if any clients would break.  I think that most 
 clients would ignore it.  However, do you really want to take 
 a chance that some client won't break, and have that section 
 of RFC 2060 flung at you as proof of your non-compliance?
 
 It also does something useful.  It differentiates between the 
 mail/ exists and is empty and mail/ does not exist.
 
 -- Mark --
 
 http://staff.washington.edu/mrc
 Science does not emerge from voting, party politics, or public debate.
 
 



RE: What is Outlook waiting for?

2003-02-10 Thread Larry Osterman
If I had to hazard a guess, it's because you didn't send a
PERMANENTFLAGS response on the select.  If that's the case, it's
probably an outlook bug because I don't believe that PERMANENTFLAGS is a
manditory response to select, but



Larry Osterman 



 -Original Message-
 From: John Doty [mailto:[EMAIL PROTECTED]] 
 Sent: Monday, February 10, 2003 12:05 AM
 To: [EMAIL PROTECTED]
 Subject: What is Outlook waiting for?
 
 
 So, I'm monkeying around with a (minimal) IMAP server 
 implementation, and I'm trying to get Outlook XP to talk to 
 it.  When I point it at the server and hit F5, it hangs at 
 Check for new mail.  Apparently, it is waiting for some 
 information from my server that I don't think I have.
 
 Here is our conversation (S is the server, C is Outlook XP):
 
 127.0.0.1:2088: S: * OK HELLO
 127.0.0.1:2088: joined
 127.0.0.1:2088: C: 000H CAPABILITY
 127.0.0.1:2088: S: * CAPABILITY IMAP4rev1
 127.0.0.1:2088: S: 000H OK CAPABILITY completed
 127.0.0.1:2088: C: 000I LOGIN john john
 127.0.0.1:2088: S: 000I OK LOGIN completed
 127.0.0.1:2089: S: * OK HELLO
 127.0.0.1:2089: joined
 127.0.0.1:2089: C: 000J CAPABILITY
 127.0.0.1:2089: S: * CAPABILITY IMAP4rev1
 127.0.0.1:2089: S: 000J OK CAPABILITY completed
 127.0.0.1:2089: C: 000K LOGIN john john
 127.0.0.1:2089: S: 000K OK LOGIN completed
 127.0.0.1:2088: C: 000L SELECT INBOX
 127.0.0.1:2088: S: * 0 EXISTS
 127.0.0.1:2088: S: * 0 RECENT
 127.0.0.1:2088: S: * OK [UIDVALIDITY 512553089] UIDs valid
 127.0.0.1:2088: S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
 127.0.0.1:2088: S: 000L OK [READ-WRITE] SELECT completed
 127.0.0.1:2089: C: 000M LSUB  *
 127.0.0.1:2089: S: * LSUB () / INBOX
 127.0.0.1:2089: S: * LSUB () / Sent Items
 127.0.0.1:2089: S: * LSUB () / Drafts
 127.0.0.1:2089: S: * LSUB () / INBOX/Baz
 127.0.0.1:2089: S: * LSUB () / INBOX/Baz/Bar
 127.0.0.1:2089: S: 000M OK LSUB completed
 127.0.0.1:2089: C: 000N STATUS Drafts (UNSEEN)
 127.0.0.1:2089: S: * STATUS Drafts (UNSEEN 0)
 127.0.0.1:2089: S: 000N OK STATUS completed
 127.0.0.1:2089: C: 000O STATUS INBOX/Baz (UNSEEN)
 127.0.0.1:2089: S: * STATUS INBOX/Baz (UNSEEN 0)
 127.0.0.1:2089: S: 000O OK STATUS completed
 127.0.0.1:2089: C: 000P STATUS INBOX/Baz/Bar (UNSEEN)
 127.0.0.1:2089: S: * STATUS INBOX/Baz/Bar (UNSEEN 0)
 127.0.0.1:2089: S: 000P OK STATUS completed
 127.0.0.1:2089: C: 000Q STATUS Sent Items (UNSEEN)
 127.0.0.1:2089: S: * STATUS Sent Items (UNSEEN 0)
 127.0.0.1:2089: S: 000Q OK STATUS completed
 127.0.0.1:2088: C: 000R NOOP
 127.0.0.1:2088: S: 000R OK NOOP completed
 
 It logs in, selects INBOX, then does a NOOP, and sits.  (It 
 makes another connection, checks out the subscriptions, and 
 asks for the count of UNSEEN messages on all the other mailboxes.)
 
 I'm guessing that it wants me to send something with that 
 NOOP, but I just can't figure out what.  I've already told it 
 I don't have any messages for it, and that hasn't changed...
 
 john
 
 -- 
 -
  For information about this mailing list, and its archives, see: 
  http://www.washington.edu/imap/imap-list.html
 -
 
 



RE: What is Outlook waiting for?

2003-02-10 Thread Larry Osterman
AFAIK PERMANENTFLAGS is only optional when you have NO flags that
persist.

PERMANENTFLAGS is the set of flags that persist beyond the lifetime of
the SELECT command.
FLAGS is the set of flags that are legal on the current mailbox.

They are not necessarily the same set.



Larry Osterman 



 -Original Message-
 From: John Doty [mailto:[EMAIL PROTECTED]] 
 Sent: Monday, February 10, 2003 10:13 AM
 To: Larry Osterman; [EMAIL PROTECTED]
 Subject: RE: What is Outlook waiting for?
 
 
 
 I modified it to return a PERMANENTFLAGS response, but that 
 didn't seem to help.
 
 (Just so that I can believe I understand the RFC, 
 PERMANENTFLAGS is optional when it does not differ from the 
 set of flags you returned with the FLAGS status, right?  It 
 would gall me to have to include it just because uw-imap
 does...)
 
 john
 
 
 -Original Message-
 From: Larry Osterman [mailto:[EMAIL PROTECTED]] 
 Sent: Monday, February 10, 2003 9:32 AM
 To: John Doty; [EMAIL PROTECTED]
 
 If I had to hazard a guess, it's because you didn't send a 
 PERMANENTFLAGS response on the select.  If that's the case, 
 it's probably an outlook bug because I don't believe that 
 PERMANENTFLAGS is a manditory response to select, but
 
 
 
 Larry Osterman 
 
 
 
  -Original Message-
  From: John Doty [mailto:[EMAIL PROTECTED]]
  Sent: Monday, February 10, 2003 12:05 AM
  To: [EMAIL PROTECTED]
  Subject: What is Outlook waiting for?
  
  
  So, I'm monkeying around with a (minimal) IMAP server 
 implementation,
  and I'm trying to get Outlook XP to talk to it.  When I point it at 
  the server and hit F5, it hangs at Check for new mail.  
 Apparently, 
  it is waiting for some information from my server that I 
 don't think I 
  have.
  
  Here is our conversation (S is the server, C is Outlook XP):
  
  127.0.0.1:2088: S: * OK HELLO
  127.0.0.1:2088: joined
  127.0.0.1:2088: C: 000H CAPABILITY
  127.0.0.1:2088: S: * CAPABILITY IMAP4rev1
  127.0.0.1:2088: S: 000H OK CAPABILITY completed
  127.0.0.1:2088: C: 000I LOGIN john john
  127.0.0.1:2088: S: 000I OK LOGIN completed
  127.0.0.1:2089: S: * OK HELLO
  127.0.0.1:2089: joined
  127.0.0.1:2089: C: 000J CAPABILITY
  127.0.0.1:2089: S: * CAPABILITY IMAP4rev1
  127.0.0.1:2089: S: 000J OK CAPABILITY completed
  127.0.0.1:2089: C: 000K LOGIN john john
  127.0.0.1:2089: S: 000K OK LOGIN completed
  127.0.0.1:2088: C: 000L SELECT INBOX
  127.0.0.1:2088: S: * 0 EXISTS
  127.0.0.1:2088: S: * 0 RECENT
  127.0.0.1:2088: S: * OK [UIDVALIDITY 512553089] UIDs valid
  127.0.0.1:2088: S: * FLAGS (\Answered \Flagged \Deleted 
 \Seen \Draft)
  127.0.0.1:2088: S: 000L OK [READ-WRITE] SELECT completed
  127.0.0.1:2089: C: 000M LSUB  *
  127.0.0.1:2089: S: * LSUB () / INBOX
  127.0.0.1:2089: S: * LSUB () / Sent Items
  127.0.0.1:2089: S: * LSUB () / Drafts
  127.0.0.1:2089: S: * LSUB () / INBOX/Baz
  127.0.0.1:2089: S: * LSUB () / INBOX/Baz/Bar
  127.0.0.1:2089: S: 000M OK LSUB completed
  127.0.0.1:2089: C: 000N STATUS Drafts (UNSEEN)
  127.0.0.1:2089: S: * STATUS Drafts (UNSEEN 0)
  127.0.0.1:2089: S: 000N OK STATUS completed
  127.0.0.1:2089: C: 000O STATUS INBOX/Baz (UNSEEN)
  127.0.0.1:2089: S: * STATUS INBOX/Baz (UNSEEN 0)
  127.0.0.1:2089: S: 000O OK STATUS completed
  127.0.0.1:2089: C: 000P STATUS INBOX/Baz/Bar (UNSEEN)
  127.0.0.1:2089: S: * STATUS INBOX/Baz/Bar (UNSEEN 0)
  127.0.0.1:2089: S: 000P OK STATUS completed
  127.0.0.1:2089: C: 000Q STATUS Sent Items (UNSEEN)
  127.0.0.1:2089: S: * STATUS Sent Items (UNSEEN 0)
  127.0.0.1:2089: S: 000Q OK STATUS completed
  127.0.0.1:2088: C: 000R NOOP
  127.0.0.1:2088: S: 000R OK NOOP completed
  
  It logs in, selects INBOX, then does a NOOP, and sits.  (It makes
  another connection, checks out the subscriptions, and asks for the 
  count of UNSEEN messages on all the other mailboxes.)
  
  I'm guessing that it wants me to send something with that 
 NOOP, but I
  just can't figure out what.  I've already told it I don't have any 
  messages for it, and that hasn't changed...
  
  john
  
  --
  -
   For information about this mailing list, and its archives, see:
   http://www.washington.edu/imap/imap-list.html
  -
  
  
 
 



RE: outlook express

2003-02-05 Thread Larry Osterman
Umm...  I really did mean the protocol log - showing the creation of the
mailbox if possible.  You may have to get it from the server, I can't
see where to turn it on in the current OE.

I'm still not 100% convinced this isn't a user error/poor defaults on
the part of OE.  Just because Outlook works doesn't necessarily mean
it's a bug in OE, since they are totally different paradigms.

The error in your email indicates that the server felt that the folder
called Mail/Admin wasn't selectable.  That implies that the folder was
created with a trailing / character, which means that it can't hold
email (and thus isn't selectable).  But without knowing the protocol
messages that were sent when the folder was created, there's not much
that can be done :(


Larry Osterman 



 -Original Message-
 From: Steve Dame [mailto:[EMAIL PROTECTED]] 
 Sent: Wednesday, February 05, 2003 1:17 PM
 To: Larry Osterman; [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Subject: Re: outlook express
 
 
 Larry,
 
 Related to this thread of discussion, do you have any 
 information as to when M$ is going to fix the bug in OE6 
 related to clicking on subfolders in the explorer list 
 contained within OE?  Has it been confirmed as a bug and 
 someone assigned to fix it???  It is the only thing lacking 
 in an otherwise great client implementation when it comes to 
 interfacing to the UW/IMAP system.
 
 In my example, I have a /Mail folder and then serveral 
 folders under /Mail one of which is /Mail/Admin.  If I try 
 and select Admin, I get this error dialog in the attached 
 file.  It is a benign error, but just simply mars the 
 otherwise good client implementation.
 
 -Steve
 
 
 
 
 - Original Message -
 From: Larry Osterman [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Sent: Wednesday, February 05, 2003 12:28 PM
 Subject: RE: outlook express
 
 
  Ok, then the protocol log will be required to diagnose this any 
  further.
 
  Larry Osterman
 
 
 
   -Original Message-
   From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
   Sent: Wednesday, February 05, 2003 12:24 PM
   To: Larry Osterman
   Subject: RE: outlook express
  
  
   Quoting Larry Osterman [EMAIL PROTECTED]:
  
If you're using U.W, then the chances are that it's a
   client bug, but
first
   
When you create the folders, do you create them with a trailing 
/ character?  U.W. (and technically the IMAP protocol) does
   not have the
concept of folders, instead it has the concept of
   mailboxes.  In the
default U.W. message store, mailboxes cannot hold other
   mailboxes (in
other words, they don't behave like directories in the
   filesystem).
As a result, if you want to create something to hold mailboxes, 
you need to create the folder using a trailing / character - 
that's a hint to the U.W. message store that you want 
 to create a 
container, not a mailbox.
   
Is it possible that you're seeing something like this happen?
   I don't think so. Only Outlook Express is experiencing 
 this, Outlook 
   2000 work fine.
   
Larry Osterman
   
   
   
 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, February 05, 2003 9:38 AM
 To: Larry Osterman
 Subject: RE: outlook express


 Quoting Larry Osterman [EMAIL PROTECTED]:
   Thank you.
 I'm using UWIMAP for Sendmail 8.12.5
  If you turn on outlook's protocol logging (there's 
 an option 
  on the server page), it might be helpful to send 
 the relevant
   parts of the
  log to help diagnose the problem.
 
  I don't know what IMAP server you're using, or why 
 the error 
  is occurring, the protocol log would help figure that out
 
  Larry Osterman
 
 
 
   -Original Message-
   From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
   Sent: Wednesday, February 05, 2003 8:05 AM
   To: [EMAIL PROTECTED]
   Subject: outlook express
  
  
  
   This email is beyond the scope of this community but
   I'm going
   to ask this question because, us, IMAP 
 administrators, maybe 
   have seen this issue. First of all, IMAP is working 
   superbly. My issue is that when I try to create email
   folders on Outlook Express, I get the following error:
   an unknown error has occurred or SUBSCRIBE 
 COMPLETED. I do
   not see the folder
   on the client or server. When I use Horde's webmail
 client, it works.
   Obviously, its an M$ issue but Microsoft's KB has 
 not been 
   helpful. Any suggestions would be greatly 
 appreciated and I 
   promise I will not take
   advantage of this community for issues that are not
 related to IMAP.
  
   Rodney
  
  
   -
   Get a Room at http://www.lodging.com

RE: speaking of storing flags

2003-01-28 Thread Larry Osterman
Actually there IS a relatively (6ish years old) precedent.  Trumpet
Winsock (a free-ware Windows TCP implementation that was VERY popular in
the pre-win95 days before a certain evil monopoly decided to destroy the
3rd party TCP/IP stack market by (gasp!) actually including an
implementation of TCP/IP in their product) had a hard-coded 2 connection
limit.  A windows machine running trumpet could ONLY connect to two
remote sockets simultaneously without changing magic ini file
parameters.  Once again, we got burned horribly by that when we were
testing the windows version of the Exchange client over trumpet - the
instant you tried to talk to a second public folder server, the client
failed in mysterious ways and I was the poor sod who got stuck with
figuring it out.


So there ARE situations where connections are expensive.  But not in a
modern operating system.

Larry Osterman 



-Original Message-
From: Mark Crispin [mailto:[EMAIL PROTECTED]] 
Sent: Monday, January 27, 2003 11:22 PM
To: Timo Sirainen
Cc: [EMAIL PROTECTED]
Subject: Re: speaking of storing flags


On Mon, 28 Jan 2003, Timo Sirainen wrote:
 Multiple
 connections eat more memory and more network resources.

How did you arrive at this conclusion?  I suggest that you have fallen
prey to an urban myth.  Like most myths, there is a vestige of
historical truth; in the NCP protocol used prior to 1983, network
connections did consume costly resources.  This was one of the things
that TCP fixed.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.



RE: speaking of storing flags

2003-01-28 Thread Larry Osterman
Oooh, that IS nasty then.  It's almost as if the permanentflags on a
folder can change dynamically.

As I said in my first reply - the clients ARE unquestionably broken.  As
you said - if they do a store, and then someone else does a store, this
is exactly the state that they'll see.  So they are NOT respecting the
store response.


However to comply with 7.1, I think you still need to shadow the \Seen
flag state, even though the \Seen flag's in the permanentflags.  I know
we did in Exchange (our case was more fundamental, in our case, \Seen
could be set but not any of the other message flags because the Exchange
store stores the read/unread state on a public folder as a per-user
value).


Have you tried doing:

C: . STORE * FLAGS (\Seen)
S: * 999 FETCH FLAGS ()
S: * 999 FETCH FLAGS (\Seen)
S: . OK Fetch completed


And see if that makes the clients happy?  I don't know if it would but
it might be worth a try.  It's a total absolute hack but

Larry Osterman 



-Original Message-
From: Rick Block [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, January 28, 2003 10:31 AM
To: Larry Osterman
Cc: Mark Crispin; [EMAIL PROTECTED]
Subject: Re: speaking of storing flags


Larry,
The server I'm working on does allow the \seen flag to be set, but
unfortunately when it's set it is actually permanently set (facetious
comment: isn't this exactly what the spec demands?). I realize from a
user interface view this is not good, but I think the behavior I
describe complies with the protocol (from the client's viewpoint, what
might be happening is ***another client*** is setting the \seen flag
shortly after it's been cleared). I haven't tried sending both an
untagged fetch indicating the \seen flag has been cleared followed by
an untagged fetch indicating it's been set again (I'll have to try
this), maybe this might make the client happier.

-Rick Block

Larry Osterman wrote:
 
 Mark, I'm 99% sure that there's text in the spec that indicates that 
 flag changes must take effect - they don't need to be permanent, but 
 they do need to take effect (as I mentioned in my previous mail, we 
 got burned by that on Exchange at one point).  Obviously you wrote the

 text, so you should know but let me see if I can find the 
 reference
 
 Time Passes
 
 Ah, here it is.  Section 7.1:
 
 PERMANENTFLAGS Followed by a parenthesized list of flags,
  indicates which of the known flags that the
client
  can change permanently.  Any flags that are in
the
  FLAGS untagged response, but not the
PERMANENTFLAGS
  list, can not be set permanently.  If the client
  attempts to STORE a flag that is not in the
  PERMANENTFLAGS list, the server will either
reject
  it with a NO reply or store the state for the
  remainder of the current session only.  The
  PERMANENTFLAGS list can also include the special
  flag \*, which indicates that it is possible to
  create new keywords by attempting to store those
  flags in the mailbox.
 
 Larry Osterman
 
 -Original Message-
 From: Mark Crispin [mailto:[EMAIL PROTECTED]]
 Sent: Monday, January 27, 2003 7:22 PM
 To: Rick Block
 Cc: [EMAIL PROTECTED]
 Subject: Re: speaking of storing flags
 
 On Mon, 27 Jan 2003, Rick Block wrote:
  I'm working on a server that cannot make a message unseen once it's 
  been marked seen.  I've tried returning untagged fetch responses to 
  store attempts to clear the seen flag, like so (assuming message 1 
  is already seen):
c: xyzzy store 1 -flags (\seen)
s: * 1 fetch (flags (\seen))
s: xyzzy OK
 
 This is the correct thing for your server to do.  If your server 
 supports ACL (RFC 2086), it should not offer the s right.
 
 Now, I would prefer that your server allow alteration of the \Seen 
 flag, but it *is* compliant.
 
 If your server didn't support the \Seen flag at all, a better behavior

 would be to omit \Seen in the PERMANENTFLAGS list and allow 
 setting/clearing \Seen in the session.  What you have is slightly 
 different; you have a flag that can be set but not cleared.
 
  but the clients I've tried (Outlook Express 5 and a fairly old 
  version
 
  of Netscape Communicator) seem to completely ignore the untagged 
  response (the message starts out looking seen in the client, after 
  marking the message unseen via their user interface even with the 
  untagged fetch response the message is displayed as unseen).
 
 I consider both of these clients to be broken.  Your situation is one 
 of the reasons why the STORE command returns an untagged FETCH.
 
 I bet that if you try it with Pine, you'll get the behavior that you 
 expect.
 
  I've tried a NO
  response; this is treated as a protocol error by these clients.
 
 I don't think that a NO response should ever be issued in response

RE: question about multipart/related and IMAP servers

2002-12-20 Thread Larry Osterman
Title: Message



It 
takes place on the Exchange 5.5 server. I don't know why 5.5 
wouldn't generate a full fidelity output stream on a m/r message, but that's 
undoubtedly where the failure is occurring.

If you 
send me the original message as a .eml file, I can send it to the QFE guys to 
see what's going on

Exchange 2000 maintains 100% full fidelity with the input MIME stream so 
you shouldn't see any problems with that.



Larry 
Osterman 


  
  -Original Message-From: Sang Park 
  [mailto:[EMAIL PROTECTED]] Sent: Friday, December 20, 2002 
  11:46 AMTo: '[EMAIL PROTECTED]'Subject: question 
  about multipart/related and IMAP servers
  I am sending out a message with multipart/related 
  content-type (from outlook express). but when i forward this message to 
  several different accounts (exchange 5.5, exchange 6.0, netscape 4.15, cyrus) 
  i get two types of MIME messages. one where the original mime is left 
  intact (exchange 6.0 and netscape 4.15) and another where the 
  multipart/related has been changed to mutlipart/mixed.
  
  Does anyone know where this alteration takes place 
  (the outlook client, the smtp server, the MTA or the IMAP server)? any 
  help would be greatly appreciated.
  
  Thanks
  
  sang park
  


RE: Has IMAP been a slow starter?

2002-12-10 Thread Larry Osterman
IMHO, the biggest reason IMAP hasn't caught on more is simply that ISPs
have no economic incentive to offer IMAP services.  In the corporate
space, there are many incentives to offer IMAP - server-centric email
storage is a GOOD thing - you have centralized backup, the opportunity
for centralized virus scanning, etc.  

But in the ISP space (which is 99% of all email users), server-centric
email storage is a BAD thing.

Email on the ISP's server==more hard disk space being used by the
users==more costs for the ISP.

The ISP could go to a IMAP costs more model but I don't think that
they've got a good story to justify the extra costs for the customer.
The only currently existing business model for server-hosted email is
the hotmail model - the customers email is kept on the server, primarily
to allow the server the opportunity to plaster ads in the customers
face.

So I suspect that IMAP will continue to grow in the corporate
environment, but given the current technology, in the end-user space,
it's probably a non-starter.

On the other hand, I do agree with you w.r.t. mobility.  If there's
anything that's going to break IMAP loose in the ISP space, it's mobile
devices - when you're dealing with small devices, then server-centric
email storage is a requirement, and I suspect that small devices may be
the thing that makes IMAP reach critical mass.



Larry Osterman 



-Original Message-
From: Pete Maclean [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, December 10, 2002 8:46 AM
To: [EMAIL PROTECTED]
Subject: Has IMAP been a slow starter?


A customer recently posed the following question to me:

  I am curious about something based upon observation.Has IMAP
been a 
slow
  starter because most people do not understand its capabilities 
intuitively??
  From what I have seen, people understand at least some of the
sharing and
  folder features of MS Exchange and most of the capabilities of POP.
But
  these same people do not seem to understand that there is a protocol
  difference between the two and that sharing and folder access is
enabled
  through this protocol. Has this been your experience as well?? Also,
do 
you
  think that imap.org does a good job about getting the word out about
IMAP??

I am unable to do a good job of answering this and wonder if anyone out 
there on the list would like to chime in with some helpful comments.  I 
would like to create a good answer partly because the customer concerned

has been extraordinarily helpful to me in marketing my IMAP products and

partly because I would like to gain a better grasp of these matters 
myself.  I consider my technical knowledge of IMAP to be excellent but
my 
cultural knowledge of it is hazy.

I will offer a few ideas that I would include in a response and I invite

people to critique them.

Has IMAP been a slow starter?  I think it has although it is also true
that 
it is well used in certain quarters.

Is it hard to understand its capabilities intuitively?  I think this is 
true.  For example, there are excellent reasons why IMAP includes no 
facilities for sending messages but those reasons are rather technical
and 
may seem strange to an average email user.  I think it may also be 
difficult to get a grasp of what IMAP can do because of the way that 
clients implement it.  Not that clients should expose IMAP capabilities
as 
such but many clients make poor use of them.

Why has IMAP not caught on more?  Many email service providers have no 
incentive to provide IMAP support.  Or is that the wrong way to look at 
it?  Email providers could perhaps do better by offering IMAP as an
extra, 
at a price.  But maybe there would be too few takers?  I feel strongly
that 
another reason IMAP has not caught on is because of the sorry state of 
clients.  While there are a couple of glowing exceptions, the state of
IMAP 
support in general among popular clients is a disgrace.

Should IMAP catch on more?  I think it should and I think it will.  The 
biggest reason that I see is mobility.  (My view that this is the
biggest 
reason may be created by the market that I operate in.)  When you want
to 
read your mail from a handheld device (be it a PDA, mobile phone, or 
something else), IMAP is ideal.  You can arrange for your mail to be
stored 
in one place and access any piece of it from your device.  You can 
selectively access the various components of a message.  You can search 
folders -- with awesome search power.  The trouble is that there is no 
email client I know of for handheld devices that has anything like a 
complete implementation of IMAP, never mind one that works very 
well.  (Although I have a wee notion that this situation could change
for 
one particular PDA, the Sharp Zaurus.)

Do I think that imap.org does a good job about getting the word out
about 
IMAP?  I have little idea.  I am not even sure that that is a purpose 
imap.org is intended for.

My thanks in advance for any comments,

Pete Maclean

RE: Mailbox names containing hierarchy separator

2002-11-15 Thread Larry Osterman
Umm...  Actually we ran into this about 5 years ago with the Exchange
server.  The simple answer is lump it.  The Exchange server filters
all folders with the hierarchy separator character in them.  
Our users were a bit surprised when they discovered this but they
learned to cope.  It's not pleasant for those stores that allow
hierarchy characters in the mailbox, but this is fundimentally a
limitation of the protocol.

The U+2215 option IS viable, however you will run into other clients
that cannot cope with receiving the unicode characters and choke on them
(clients on non unicode-enabled Operating systems like Win9x come to
mind immediately).  That's why we decided not to go down that route for
the Exchange server, ymmv


Larry Osterman 



-Original Message-
From: Grant Baillie [mailto:gbaillie;apple.com] 
Sent: Friday, November 15, 2002 11:20 AM
To: [EMAIL PROTECTED]
Subject: Mailbox names containing hierarchy separator


Sometimes, users will want to create mailboxes whose names contain the 
hierarchy separator. A common case is to have dates in the name (say, 
Work - 11/02) when the server's separator is /. They are, not 
unnaturally, surprised at the results, since they expected to get a 
single mailbox, not two levels of hierarchy. (Presumably, this isn't so 
big deal for clients which present the output of LIST more or less 
directly, but most clients don't do that because it doesn't scale very 
well).

A couple of ideas for dealing with that I can think of are:

1) For /, use a Unicode character like U+2215, which will display 
approximately the way the user expects. I think there's a similar 
unichar for . and maybe even \.

2) Modified UTF-7 encode the separator to get the mailbox name. I think 
this is illegal according to Section 5.1.3 (Mailbox International 
Naming Convention) of the spec, though.

Any comments/suggestions would be welcome

--Grant

-
Grant Baillie [EMAIL PROTECTED]
Mac OS X Mail, Apple Computerm, Inc
-

-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-

--
-
 For information about this mailing list, and its archives, see:
 http://www.washington.edu/imap/imap-list.html
-




RE: Empty mailbox Fetch. Was: possible draft 19 changes for sequence

2002-09-26 Thread Larry Osterman

I'll just jump into a teeny tiny part of your objections:


 About BAD:
 
 There are
 three possible server completion responses: OK (indicating
success),
 NO (indicating failure), or BAD (indicating protocol error such as
 unrecognized command or command syntax error).
 
 If FETCH 2:2 cannot be used right now, becase we have only one message
in 
 that mailbox, it is a failure, not an unrecognized command or
command 
 syntax error (even if we say in the syntax rules that seq_numbers
used in 
 the seq_subset should be not greater than the # of messages in the
mailbox - 
 it's not a syntax rule).

The critical word here is such.  The text doesn't indicate that BAD
can ONLY be returned for unrecognized commands or syntax errors, the
text indicates that AMONG the reasons for returning a BAD response is
unrecognized commands or syntax errors.  There is a critical difference
between the two words (ONLY and AMONG).

Since the following sequence is illegal by the protocol, it is
appropriate that it be tagged with BAD - there only way that this
sequence can be generated is if the client has an error that has caused
it to misinterpret the protocol stream:

S: * 1 EXISTS
S: tag OK
C: tag FETCH 2
S: tag BAD - Message 2 does not exist.

Since message sequence number 2 does not exist, it is a protocol error
to request it.  The determination of whether or not it is a protocol
error is based solely on the fact that the client HAS BEEN TOLD that
message 2 doesn't exist (that happened when the client received the * 1
EXISTS untagged response).  On the other hand, it is NOT a protocol
error for the following to occur:
S: * 2 EXISTS
S: tag OK
C: tag FETCH 2
S: * 2 EXPUNGE
S: * FETCH 2 (NIL)
S: tag OK Fetch completed but message deleted.

In that case, the client has not yet been told that the message
identified by sequence number 2 is gone, and the client DOES know that
that the message exists, so it's legal for the client to request the
data.



Please note that one of the fundimental principals of IMAP (which is
called out in the spec, but I'm not sure where) is that both the client
AND the server know the state of their corresponding part.  So the
client needs to know the state of all the messages in the mailbox on the
server, and the server needs to know what the client's state of the
mailbox is.  Fortunately for server implementations, the server can
assume that the client has heard and understood everything that the
server has sent to the client, and thus only has to keep track of what
it sent to the client.



Larry Osterman 



-Original Message-
From: Vladimir A. Butenko [mailto:[EMAIL PROTECTED]] 
Sent: Thursday, September 26, 2002 8:38 AM
To: Mark Crispin
Cc: [EMAIL PROTECTED]
Subject: Re: Empty mailbox  Fetch. Was: possible draft 19 changes for
sequence


On Wed, 25 Sep 2002 08:34:10 -0700 (PDT)
  Mark Crispin [EMAIL PROTECTED] wrote:
 On Wed, 25 Sep 2002 07:39:40 -0700, Vladimir A. Butenko wrote:
  If FETCH 2:2 is legal for a mailbox that contains one message, I do 
 not  understand why Fetch 1:1 is illegal in an empty mailbox, or why 
 FETCH 1:* is
 
  illegal in an empty mailbox.
 
 FETCH 2:2 is *NOT* legal for a mailbox that contains one message.  So 
 your argument falls apart:
   x select foo
   * 1 EXISTS
   * 1 RECENT
   * OK [UIDVALIDITY 1032968134] UID validity status
   * OK [UIDNEXT 2] Predicted next UID
   * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
   * OK [PERMANENTFLAGS ()] Permanent flags
   * OK [UNSEEN 1] first unseen message in /u/mrc/foo
   x OK [READ-ONLY] SELECT completed
   y fetch 2:2 flags
   y BAD Bogus sequence in FETCH
 
 FETCH 2:2 is legal for a message that contains two messages.  It is
 equivalent
 to FETCH 2.
 
 On the other hand...
 
 UID FETCH 2:2 is legal for all mailboxes.
 UID FETCH 1:1 is legal for all mailboxes.
 UID FETCH 1:* is legal for all mailboxes.
 
 Do you see the pattern?

I see the pattern in your letter. I do not see anything resenbling this 
pattern in the RFC2060.

Note: the phrase

; Identifies a set of messages.  For message
; sequence numbers, these are consecutive
; numbers from 1 to the number of messages in
; the mailbox

specifies what the sequence numbers are (hint: the word consecutive).
It 
has NOTING to do with specification of:

set = sequence-num / (sequence-num : sequence-num) /
  (set , set)

and this:

; Comma delimits individual numbers, colon
; delimits between two numbers inclusive.  Note
; that n:m and m:n are equivalent.
; Example: 2,4:7,9,12:* is 2,4,5,6,7,9,12,13,
; 14,15 for a mailbox with 15 messages.

is not a proper declaration either

RE: Empty mailbox Fetch. Was: possible draft 19 changes for sequence

2002-09-26 Thread Larry Osterman

Crud, as always, you're right  Shows I've been away from the
protocol for too many years :(

Larry Osterman 



-Original Message-
From: Mark Crispin [mailto:[EMAIL PROTECTED]] 
Sent: Thursday, September 26, 2002 9:17 AM
To: Larry Osterman
Cc: Vladimir A. Butenko; [EMAIL PROTECTED]
Subject: RE: Empty mailbox  Fetch. Was: possible draft 19 changes for
sequence


On Thu, 26 Sep 2002 09:15:34 -0700, Larry Osterman wrote:
 On the other hand, it is NOT a protocol
 error for the following to occur:
   S: * 2 EXISTS
   S: tag OK
   C: tag FETCH 2
   S: * 2 EXPUNGE
   S: * FETCH 2 (NIL)
   S: tag OK Fetch completed but message deleted.

Actually, that scenario is invalid.  The server isn't allowed to send
the untagged EXPUNGE in that situation.  Valid scenarios which
illustrate your point (albeit not as strongly):

S: * 2 EXISTS
S: tag OK
C: tag FETCH 2 RFC822.HEADER
S: * 2 FETCH (RFC822.HEADER NIL)
S: tag OK Fetch completed but message deleted.
C: tag NOOP
S: * 2 EXPUNGE
S: tag OK

Here a dummy message was returned for message 2 cause the untagged
EXPUNGE had to be deferred until the client did a command which permits
the transmission of untagged EXPUNGE.  Personally, I think that it is
better, until the untagged EXPUNGE is sent, to retain a message ghosts
that has all the message data.

Here's another scenario that is closer to your point:

S: * 2 EXISTS
S: tag OK
C: tag FETCH 2 UID
S: * 2 FETCH (UID 23)
S: tag OK
C: tag UID FETCH 23 RFC822.HEADER
S: * 2 FETCH (UID 23 RFC822.HEADER NIL)
S: * 2 EXPUNGE
S: tag OK Fetch completed but message deleted.

Unlike FETCH, UID FETCH permits sending untagged EXPUNGE.  However, the
untagged EXPUNGE can not be sent until *AFTER* the untagged FETCH, since
otherwise the 2 in the untagged FETCH would be invalid.

Alternatively, the server could do the same scenario without sending any
untagged FETCH:

S: * 2 EXISTS
S: tag OK
C: tag FETCH 2 UID
S: * 2 FETCH (UID 23)
S: tag OK
C: tag UID FETCH 23 RFC822.HEADER
S: * 2 EXPUNGE
S: tag OK Fetch completed but message deleted.

Note that scenarios such as the latter two can never happen with message
sequence numbers.




RE: possible draft 19 changes for sequence

2002-09-25 Thread Larry Osterman

I just checked the E2K server, and it does:
C: 1 UID FETCH * (RFC822.HEADER)
S: * 1 EXISTS
S: 1 OK done
C: 1 UID FETCH * (RFC822.HEADER)
S: * FETCH {}
S: 1 OK Done

In this scenario. And clearly the final case is incorrect.


Larry Osterman 



-Original Message-
From: Mark Crispin [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 25, 2002 10:23 AM
To: Larry Osterman
Cc: Simon Josefsson; Pete Maclean; IMAP Interest List
Subject: RE: possible draft 19 changes for sequence


On Wed, 25 Sep 2002 10:20:56 -0700, Larry Osterman wrote:
 Nit: Should it be should or SHOULD in The server should respond 
 with a tagged BAD below?

In general, I've avoided placing requirements on server handling of
errors. In my opinion, a compliant server could treat FETCH * of an
empty mailbox as the command to set the hard drive on fire, launch
nuclear missiles on Disneyland, and give the system manager a bad
haircut...

The philosophy here is GIGO (Garbage In, Garbage Out); you can't
predict subsequent behavior if you violate the standard, so don't
violate the standard.

 Also, the UIDNEXT value?  Is this right?

It was for lack of a better choice.  The problem with saying last
assigned UID is that in a newly-created mailbox, there is no last
assigned UID and zero is not a possibility.

  Mailbox is empty, client believes there are 0 messages in the inbox 
   Message arrives in mailbox 
 C: 1 UID FETCH * (RFC822.HEADER)
 S: * 1 EXISTS

IMHO, this is a timing race.  Either UID 1 doesn't exist at the time
that the command is executed, or it does exist.  So, the scenario should
be one of:
C: 1 UID FETCH * (RFC822.HEADER)
S: * 1 EXISTS
S: 1 OK done
or
C: 1 UID FETCH * (RFC822.HEADER)
S: * 1 EXISTS
S: * 1 FETCH (UID 1 RFC822.BODY {xx}
Body of newly received message)
S: 1 OK done

I do not think that:
S: * 1 FETCH (UID 1 RFC822.BODY NIL)
should ever be returned.  This is the worst of both possibilities.

Can you look into what Exchange does?  Fortunately, I don't think that
it should be a major problem, since I doubt that clients will ever do
this.

Clients are much more likely to do UID FETCH 1:*.  I assume that you'd
agree that
C: 1 UID FETCH 1:* (RFC822.HEADER)
S: * 1 EXISTS
S: * 1 FETCH (UID 1 RFC822.BODY NIL)
S: 1 OK done
is a definite bug!




RE: possible draft 19 changes for sequence

2002-09-25 Thread Larry Osterman

As Mark and I discussed earlier, the UIDNEXT item is irrelevant unless
an item comes into the mailbox between the previous operation and the
FETCH.  And I agree with Mark that it's a race condition that can't be
solved.

The reality is that it's never going to happen (except for the case of a
client that receives out-of-band notification of the presence of the
message, which I claim is out of scope), a properly written client will
never issue a FETCH for * when there are no messages in the mailbox.

I understand Mark's problem here though - he has to have SOME text to
describe what the UID * means in the empty mailbox case, since he's
described what it means for the sequence number * in the empty mailbox.

Larry Osterman 



-Original Message-
From: Simon Josefsson [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 25, 2002 1:18 PM
To: Mark Crispin; Pete Maclean; IMAP Interest List
Subject: Re: possible draft 19 changes for sequence


Mark Crispin [EMAIL PROTECTED] writes:

 On Wed, 25 Sep 2002 14:58:15 +0200, Simon Josefsson wrote:
 Would it improve the standard to make this more obvious?  The text 
 that the argument is based on is located inside parentheses in a 
 comment inside the ABNF without saying how to handle the error or why

 it is an error.

 Well, sections 5.5 and 7.4.1 don't do that; they simply explain that 
 it is alright for it to be an error.

 Here's my latest stab at the rule for seq-number.  I hope this is 
 clearer?

It looks alright.

seq-number  = nz-number / *
; message sequence number (COPY, FETCH, STORE
; commands) or unique identifier (UID COPY,
; UID FETCH, UID STORE commands).
; * represents the largest number in use.  In
; the case of message sequence numbers, it is
; the number of messages in a non-empty
mailbox.
; In the case of unique identifiers, it is the
; unique identifier of the last message in the
; mailbox or, if the mailbox is empty, the
; UIDNEXT value.

Except possibly this new UIDNEXT thing.  Cyrus IMAP for one doesn't do
this.  In this case I think it is better to have * mean a non-existing
article instead of UIDNEXT.

. select INBOX.Drafts
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]  
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1025092571]  
* OK [UIDNEXT 1]  
. OK [READ-WRITE] Completed
. FETCH * UID
. NO No matching messages
. UID FETCH * UID
. OK Completed




RE: file not deleted on Win32

2002-09-03 Thread Larry Osterman

I'm sure that it'll be in XPSP1, which went gold on Friday (which means
it should hit the web any day now).


Larry Osterman 



-Original Message-
From: Mark Crispin [mailto:[EMAIL PROTECTED]] 
Sent: Monday, September 02, 2002 11:18 PM
To: Larry Osterman
Cc: Wolfgang Spraul; [EMAIL PROTECTED]
Subject: RE: file not deleted on Win32


On Mon, 2 Sep 2002 16:03:21 -0700, Larry Osterman wrote:
 The fix is in SP3 of W2K

That's very nice.  When will the fix appear in XP?  I am current on all
updates from Windows Update and I can assure you that the bug is still
there.

FWIW, it's also broken in 9x and Me.




RE: file not deleted on Win32

2002-09-02 Thread Larry Osterman

The KB article is:

http://support.microsoft.com/default.aspx?scid=kb;en-us;q300562

The fix is in SP3 of W2K, I don't know why they didn't back-prop it to NT4, but I 
suspect that the reason is that either (a) there weren't enough customers still using 
NT4 (which is 4 years old at this point) to justify the fix, or (b) they've stopped 
qfe'ing NT4 (as far as I know, they're only supporting W2K and XP at this point for 
QFE unless you're a premier customer).

Is there a reason you can't switch to W2K?

Larry Osterman



 -Original Message-
 From: Wolfgang Spraul [mailto:[EMAIL PROTECTED]]
 Sent: Sunday, September 01, 2002 3:07 PM
 To: Larry Osterman; [EMAIL PROTECTED]
 Subject: Re: file not deleted on Win32
 
 
 Larry -
 
 my reason for switching was the well known Q300562 (couldn't 
 find it in the 
 web version of the MSDN).
 
 That's an issue on NT4 where a buffer size is not correctly 
 calculated. A fix 
 exists but is only available through MS support. Since 
 getting the fix 
 through MS support would have cost me time and/or money, I opted for 
 switching to OpenSSL, which was remarkably easy.
 
 Please consider making the fix publicly available (and 
 redistributable).
 Regards,
 Wolfgang Spraul
 
 On Sunday 01 September 2002 11:23 pm, Larry Osterman wrote:
  If you can explain the buggy schannel.dll problems, I can 
 forward them to
  the schannel developers.
 
  As long as you're not referring to the cert chain issue, 
 I'm sure they know
  about that one :)
 
 
  Larry Osterman
 
   -Original Message-
   From: Wolfgang Spraul [mailto:[EMAIL PROTECTED]]
   Sent: Saturday, August 31, 2002 12:10 PM
   To: [EMAIL PROTECTED]
   Subject: file not deleted on Win32
  
  
   Please consider the following patch for inclusion. On Win32,
   you cannot delete
   an open file (the delete will fail), so in this case we 
 should do the
   close(fd) first, and then the unlink(tmp).
  
   I understand that ssl_unix.c is not meant to be compiled on
   Win32, but the
   Microsoft SSL implementation schannel.dll is buggy, and
   having the option to
   choose OpenSSL on Win32 is nice. At least that's what we do.
  
   This bug was found and fixed by Peter Boos.
   Regards,
   Wolfgang Spraul
  
   Index: src/osdep/unix/ssl_unix.c
   
 ===
   RCS file: /cvsroot/srclib/imports/imap/src/osdep/unix/ssl_unix.c,v
   retrieving revision 1.1.1.1
   diff -u -u -r1.1.1.1 ssl_unix.c
   --- src/osdep/unix/ssl_unix.c 16 Jul 2002 20:48:40 
 - 1.1.1.1
   +++ src/osdep/unix/ssl_unix.c 31 Aug 2002 18:59:05 -
   @@ -92,10 +92,10 @@
  if ((fd = open (tmpnam (tmp),O_WRONLY|O_CREAT,0600))  0)
 i = (unsigned long) tmp;
  else {
   - unlink (tmp);   /* don't need the file */
 fstat (fd,sbuf);   /* get information about the file */
 i = sbuf.st_ino;/* remember its inode */
   - close (fd); /* or its descriptor */
   + close (fd); /* don't need the descriptor */
   + unlink (tmp);   /* or the file */
  }
 /* not great but it'll have to do */
  sprintf (tmp + strlen (tmp),%.80s%lx%lx%lx,
  
   --
   -
For information about this mailing list, and its archives, see:
http://www.washington.edu/imap/imap-list.html
   -
 
 



RE: INBOX by any other name

2002-07-09 Thread Larry Osterman

INBOX may also be present under another name???  That's surprising to
me.  Since Exchange treats the user's primary delivery point as a
localizable entity (Boite d'envoi), the Exchange IMAP server suppresses
the name of the real primary delivery point and replaces it with INBOX
because we figured that people would get confused if they saw them.

Larry Osterman 


-Original Message-
From: Arnt Gulbrandsen [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, July 09, 2002 8:45 AM
To: [EMAIL PROTECTED]
Subject: INBOX by any other name

All IMAP servers must present the user with an INBOX. INBOX may also be
present under another name.

Is it common that IMAP servers also make INBOX available under a
different
name? Is there a way to find out whether two different names refer to
the
same mailbox?

--Arnt
-- 
-
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-

--
-
 For information about this mailing list, and its archives, see:
 http://www.washington.edu/imap/imap-list.html
-




RE: max+1:* fetches

2002-05-31 Thread Larry Osterman

There is no requirement in the protocol that max be higher than min in a message set.  
So 1601:1600 is the same as 1600:1601, and thus the second response is correct.

Larry Osterman



 -Original Message-
 From: Gaël Roualland [mailto:[EMAIL PROTECTED]]
 Sent: Friday, May 31, 2002 5:36 AM
 To: Alexey Melnikov
 Cc: Paul Smith; [EMAIL PROTECTED]
 Subject: Re: max+1:* fetches
 
 
 Alexey Melnikov a écrit :
  
  Paul Smith wrote:
  
   At 13:41 31/05/2002 +0200, Andreas Aardal Hanssen wrote:
   Say a mailbox has 1000 messages in it, and the highest 
 UID is 1600. Which
   is the correct response?
   
   1 UID FETCH 1601:* FLAGS
   1 OK FETCH completed.
   
   or
   
   1 UID FETCH 1601:* FLAGS
   * 1000 FETCH (UID 1600 FLAGS (\Seen))
   1 OK FETCH completed.
  
   The first one.
  
  No, the second one, because * is translated to 1600 for UIDs.
 
 Yes, * is translated for 1600, so that gives the range 1601:1600. 
 But does that have sense ? (general understanding is probably that the
 second sequence number must be larger or equal to the first one, but I
 can't find it in the RFC).
 
 Gaël.
 
 -- 
 Gaël Roualland -+- [EMAIL PROTECTED]
 



RE: Outlook express AUTH command

2002-03-28 Thread Larry Osterman

SPNEGO is RFC2831, if it helps :)

Larry Osterman


-Original Message-
From: Marek Kowal [mailto:[EMAIL PROTECTED]] 
Sent: Thursday, March 28, 2002 2:15 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Outlook express AUTH command

Whaw. I never expected to start such a discussion on this list. And
almost
completely OFF-topic, I must admit.

Guys, I did not ask question: do you think that MS is right not to
publish
RFC for NTLM. In fact, I do not care. What I care,  are customers of our
POP3/WebMail service - and their exact number has SEVEN digits - who
mostly
use OutlookExpress or Outlook and who connect to our mailboxes. I hoped
my
question was clear, but I'll rewrite it a bit:

What authorization method can I implement on my servers (installing
Exchange
or any Win2k service is out of question), which will allow us to
securely
authenticate our users and which will not use SSL? SSL is quite
expensive,
we would have to significantly increase our hardware base. And anyway, I
am
not interested in encrypting mail contents - I just want to keep
passwords
secure.

Still, I've read all that discussions and attacks (mostly on Larry, as
if
his name was Larry Gates, not Larry Osterman) and managed to find two
clues:
one is SPNEGO and the other DIGEST. So I have four questions (and I mean
to
get answers on them, not the philosophical points of view, please): 
1) which OE clients do support it? Does OE5.0 do? Or only OE6.0, which -
at
that point - is not really wide spread?
2) Can somebody point me to any resources on SPNEGO/DIGEST? I know, 45
secs.
on MSDN would do, but I believe experts on this list will know much
better
what is really worth reading.
3) Is anybody implementing (has already implemented) any of those in
Unix
world. Can it be done outside Windows platform, or the RFC will not be
published and this is again some proprietary thing?
4) What POP3 CAPA (or IMAP4 CAPABILITY) AUTH=XXX response should be
presented to client, so that it starts negotiating DIGEST? AUTH=DIGEST?
This
would allow me quickly to check, which clients will try to negotiate it,
event without actually implementing it.

There is also another one, this might be more to your liking: is
SPNEGO/DIGEST really good/secure? Why is it better/worse than CRAM-MD5?
Frankly, I'd love to have first four questions answered before we start
discussion on that one.

Cheers,
Marek.



 -Original Message-
 From: Marek Kowal [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, March 27, 2002 6:57 PM
 To: '[EMAIL PROTECTED]'
 Subject: Outlook express AUTH command
 
 
 Hi there,
 
 This is not really IMAP related question, but:
 
 Does anybody know, what AUTH modes are supported by Outlook 
 Express? I've
 just heard that APOP or CRAM-MD5 is not supported. Only LOGIN 
 is, and this
 is not real password protection, since this is just BASE64 
 login/password
 encryption and anyone can decrypt them. So how can I connect 
 securely to
 server with OE, except for SSL?
 
 BTW, will UW-IMAP support NTLM authentication? Is there any 
 Open Source
 server, that does?
 
 Cheers,
 Marek.
 -- 
 -
  For information about this mailing list, and its archives, see: 
  http://www.washington.edu/imap/imap-list.html
 -
 



RE: Outlook express AUTH command

2002-03-28 Thread Larry Osterman

Bob,
  Again, I am not a lawyer, but my brother IS a lawyer (he specializes
in intellectual property law in fact), and he and I had a discussion
about the viral nature of GPL and how deep its tenticles can extend a
couple of weeks ago.  It is his opinion that this is NOT clear, and that
my concerns are NOT complete nonsense, due to the license covering
algorithms and principals, there ARE scenarios where the GPL can
unintentionally infect other non GPL code.  They ARE obscure, but they
ARE possible.  

This is a purely hypothetical scenario, but I don't believe it's beyond
reason:  A developer who works on SQL Server (call him Joe) also happens
to play around with the Linux filesystem.  At some point in the future,
the powers that be in the SQL Server group at Microsoft decide to
implement a feature that mirrors something in the Linux filesystem.  If
Joe works on this feature (or talks to someone who works on this
feature),it is entirely possible that a non obvious algorithm (or non
obvious implementation of that algorithm) that that person found in the
source code would make its way into the Microsoft code, and we ship this
in a future release.  Now someone at Oracle notices this new feature in
SQL server and realizes that Microsoft is copying some feature in the
Linux filesystem.  He asks around and discovers that Joe has been asking
questions about the Linux filesystem on some of the public linux boards.
And now the legal boys at Oracle sue Microsoft for violating the GPL,
since it's possible that Joe has influenced the SQL server
implementation.  During discovery, the court suppoenas the source code
for SQL server, hands it to a 3rd party expert, who discovers the
algorithm from the linux filesystem in SQL server.  And the court rules
that due to the wording of the GPL, the entire source code of SQL server
has to be released as open source.

This is a REAL stretch, it relies on a lot of things happening that may
never ever happen, but it IS possible.  I personally have had something
similar happen to me.  When I realized what I had done, I immediately
ripped out my implementation, and contacted LCA.  The upshot is that I
asked 3 other people on my team write a version of the algorithm.  I
then had my manager chose which of the 3 implementations we would use in
the product, since I had to completely divorce myself from the
implementation.

Microsoft LCA is being as conservative as it is possible, even to the
point of hysteria.  This is a very good thing IMHO.  That's why it takes
a Senior VPs approval and LCA looking over your shoulder before you can
even look at a piece of open source software at Microsoft.  It CAN be
done, but it's not easy.

If you look at the IBM effort, as far as I know, the IBM employees that
work on Linux don't also work on their proprietary closed source
software (Barry, PLEASE correct me if I'm wrong), for the same reasons.
All Microsoft employees work on proprietary closed source software, so
they all need to be protected.


And I DO apologize for the use of bigoted.  It was unnecessarily
inflamitory.

Larry Osterman 



-Original Message-
From: RL 'Bob' Morgan [mailto:[EMAIL PROTECTED]] 
Sent: Thursday, March 28, 2002 1:02 AM
To: Larry Osterman
Cc: IMAP interest list
Subject: RE: Outlook express AUTH command 


Larry:

I really don't want to dive into this swamp, but I am concerned that no 
one be misled by your comments.

I'm sure that you are accurately reporting the approach Microsoft takes
to dealing with open-source code with its products and its programmers,
and I suspect you are accurately describing the sad muddle of
misunderstanding that this has likely, and unfortunately, created in its
technical staff about these issues.

But your comments on (1) re-release of code under GPL somehow affecting
previous releases of that code under other licenses, and (2) copyright
potentially covering concepts (algorithms) as well as expressions are
simply complete nonsense.  Copyrights cover expressions,
concepts/mechanisms/algorithms are covered, if at all, by patents.  
(There is an increasing incidence of corporate-driven royalty-free
patent licensing arrangements with constraints that look a lot like the
GPL, but that's another story.)  Code is often, these days, released
under multiple licenses; it is up to users of code to choose the license
that best fits their needs, and to abide by its terms.

There are, as you note, a wide range of approaches to these issues among
major software vendors.  The fact that IBM, for one example, which sells
a huge amount of proprietary, closed-source software, also employs
people to work on Linux and other GPL codebases, might lead the rational
observer to think that Microsoft's position is not conservative, but
hysterical.  
Microsoft has every right to take that position, but others are 
well-advised not to be swayed by Microsoft's extremism on this issue.

Most of my friends at Microsoft are honest enough to admit that the
point