RE: Some thoughts about IMAP and Unified Messaging


Larry Osterman (larryo@Exchange.Microsoft.com)
Mon, 17 Dec 2001 11:36:39 -0800


Pete,

  The \Recent flag should be manufactured on a MAPI server. You need
to remember the UID of the folder on the select verb, and check the UID
of the message against the UID saved in the folder, if it's greater, the
message is recent. The nature of the \Recent flag is that it can never
be preserved on the message (not if you want to get the correct
semantics in a multi-accessed mailbox situation).

And MAPI does demand that a folder have a display name, the CreateFolder
method on the IMapiFolder object takes an LPTSTR lpszFolderName
parameter.

When you are generating the LIST response, you need to check if the
entryid of the folder you're enumerating is the GetReceiveFolder's name,
and return "INBOX" for the name of that folder (and not the value of
PR_DISPLAY_NAME). This is what the exchange server does internally, and
it's what you should do too :)

Larry Osterman

-----Original Message-----
From: Pete Maclean [mailto:aaddict@maclean.com]
Sent: Monday, December 17, 2001 9:44 AM
To: Tony Hansen
Cc: ietf-imapext@imc.org; vpim@lists.neystadt.org
Subject: Re: Some thoughts about IMAP and Unified Messaging

>What's a "true name"? Consider that an IMAP inbox is a name for what is

>sometimes a virtual entity that doesn't have one single location on the

>server. So I find it difficult to expect this.

I don't have much experience with such situations but I certainly do
appreciate that an inbox may not have a name in the sense I am talking
about and that it could indeed be a totally virtual entity. But what I
mean by "true name" is, to put it very precisely, the name of the
message
container that the IMAP server refers to as "INBOX" as it is known
within
the domain of the mailstore that it is part of -- if there is in fact
such
a container and if it actually has a name by which it is identified
within
its mailstore.

Let me give a concrete example. My IMAP server has a MAPI interface
among
others. (MAPI is Microsoft's Messaging API.) This means that it can
serve
up messages from any mailstore that implements a MAPI Store-Provider
interface. Everything in IMAP maps neatly into MAPI except that MAPI
has
nothing equivalent to IMAP's \Recent flag (which does not matter). I am

not certain off-hand if MAPI demands that all folders have names, but in

all cases I have seen they certainly do. Now MAPI includes a method
called
GetReceiveFolder that identifies the "default receive folder for the
message store". This does not exactly match IMAP's definition for inbox

but it's close enough that I have always assumed they should be
considered
equivalent. GetReceiveFolder returns an internal id from which one can
then derive the folder's name. I would like to be able to feed that
name
back to the client. Of course, as Lyndon pointed out so well, it should
be
up to the client and/or the user to choose whether that name should
actually be used in the client context, but it seems desirable that this

should at least be possible.

To concretize this issue a little more, with the English-language
installation of Microsoft's Personal Folders, the folder identified by
GetReceiveFolder is always "Inbox" -- so it happens to be no big
deal. With the German-language installation however the folder is named

"Posteingang".

Pete



This archive was generated by hypermail 2.0b3 on Mon Dec 17 2001 - 21:36:53 IST