Opo Perspective - An ASP.NET Webmail: Part 03

In this post I’ll talk a bit about the architecture of Opo Perspective. I wrote in my first post that this application should be very flexible and extensible. Here are some thoughts about this topic. Most of the ideas presented here are already realized, have a look at the source on CodePlex.

The mail messages’ way

The following graphic illustrates how a mail message makes it’s way from the mail server to the web page (click for larger view).

 PerspectiveMessagePipeline

The MailStore is an external place, where the mail messages are received from. This could be any sort of mail server or, if the mail server is running on the same system for example, a directory with the mail messages.

The MailCache is an internal respository where the messages are saved. Messages displayed in the webmail are retrieved from the MailCache.

This is done through the MailService where also could be dealt with some business logic .

IPerspectivePipeline

There are two places where a PerspectivePipeline comes into play. The first one is intended to filter, tag, delete, … mails that are stored in the MailCache. In the graphic there's a SpamPipilinePlugin, which searches the message's header for such inserted by spam filters and adds a "Spam" tag to the message. This is one example how the pipeline could be used.

The second pipeline is intended to manipulate the message before displaying. One possibility would be to convert links in the text body of the message to html hyperlinks so they can be clicked within the message. Or we could prevent images from beeing shown initially and insert a link at the top of the message that loads the images on demand.

Since all involved classes are based on interfaces it's easy to write your own mail store, mail cache or pipeline plugin.

Because messages in Opo Perspective are based on the same interface (IPerspectiveEntity) like contacts, appointments etc. the same plugins can be used for these as well.


Posted by Dave on 1/2/2009 at 10:46 PM
Tags: , ,
Categories: Opo Perspective | .NET
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Opo Perspective on CodePlex

After I released the 0.1 version of Opo.Net (http://www.codeplex.com/OpoNet) I finally started with my original project: Opo Perspective - An ASP.NET MVC Webmail Client. I wrote my first post about this project back in June this year. Yep, that's a long time and I'm very excited that I really made it and published some Perspctive code on CodePlext (http://www.codeplex.com/OpoPerspective).

Posted by Dave on 12/26/2008 at 9:34 PM
Tags: , ,
Categories: .NET | ASP.NET MVC | Opo Perspective
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Developing a C# POP3 client: Now on CodePlex

It was quite still the last few months. But now I'm back with some news about my POP3 client project. Since this little project grows and it's a bit cumbersome to always make the zip file and upload it to the blog, I decided to host it on ClodePlex. You'll find it here: http://www.codeplex.com/OpoNet

I also made some changes since my last blog post about this topic. It's mainly some additional classes like MailMessage, MailAddress etc., which I decided to implement myself rather than using the built-in ones. I thought about writing a decorator to extend it or inherit from System.Net.Mail.MailMessage. But my idea of MailMessage is slightly different from what's already in the framework.


Posted by Dave on 9/6/2008 at 4:55 PM
Tags: , ,
Categories: .NET
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed