[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.
Jeff
--
Jeffrey Stedfast
Evolution Hacker - Ximian, Inc.
fejj@ximian.com - www.ximian.com