[Mono-list] CS-Mail-API

Jeffrey Stedfast fejj@ximian.com
03 Jul 2002 13:52:58 -0400

On Wed, 2002-07-03 at 08:29, Dwivedi , Ajay Kumar wrote:
> > What's an InternetAddress? Anyways, that's not my biggest concern -
> > which is that the classes don't seem to address addresses like:
> > 
> > MONO: miguel@ximian.com, mono-list@ximian.com;
> 	This can be taken care of by using an Alias Class which extends
> EmailAddressList. The Alias class will contain one additional property
> AliasName.
> 	In fact the Alias is a Email client's burden and I am not sure if
> the
> mail API even needs it, since all aliases are expanded before sending
> the mail.

No, I think you are not understanding me. The above example is a defined
form of address in rfc0822.

     group       =  phrase ":" [#mailbox] ";"

The csMailAPI MUST be able to parse these.

> > 	<enum name="MessageFlags">
> > 	</enum>
> > 
> > This shouldn't be an enum since you can theoretically have more than a
> > single flag marked. For example, a message could be Seen and Answered.
> > We use a bit field in Camel to handle this.
> 	This can be handled by enum in C#. You need to add the Flags 
> Attribute to the enum and make sure the enum values have a single bit set.
> Eg None=0, Seen=1, Answered=2, New=4...

ok, right... I was mostly just making sure people understood that you
can't leave it up to the compiler to assign values like you normally do
with an enum.

> > Actually I'm not convinced that csMail should even worry 
> > about sorting. This can be done at a higher level.
> 	Quite True. Its the burden of the Mail client.
> > A message's flags are really just metadata and not really part of the
> > message at all. Or at least that's my paradign.
> > Message::IsExpunged() sorta follows the same idea...why do we 
> > need this?
> > If we have an instance of the message, do we really care? I dunno,
> > perhaps it could be useful.
> 	It can be useful. Imagine an IMAP folder with some messages
> in it. The client Gets A list of messages from the folder, marks
> some of them as deleted and asks the API to save them. The methods
> like ISExpunded can help in finding out if the message instance
> has been deleted by the user and show appropriate label/image.
> Only when you save the folder, is the message deleted from the
> server. 

Deleted != Expunged. Expunged means it has already been *removed* from
the server while Deleted means it still exists on the server but is
flagged as Deleted.

Based on this definition, I'm not sure IsExpunged() really matters.


Jeffrey Stedfast
Evolution Hacker - Ximian, Inc.
fejj@ximian.com  - www.ximian.com