Home  Projects  Contact 
SharpWebMail features ASP.NET webmail application written in C#
Home >Projects >SharpWebMail >Features

Main features

  Fully written in C#

SharpWebMail is fully written from scratch in c#.

  Follows RFCs

SharpWebMail tries to conform to any relevant RFC in place. If you find a behavior that violates a RFC, please let me know.

As SharpWebMail is beta software, there are many RFCs that are not fully supported.

  Very simple to configure

With only setting a few keys in web.config file (documented in there) you will have SharpWebMail working.

Click here to see the content of web.config file.

  Reads mail from POP3 and IMAP servers

SharpWebMail reads mail from POP3 and IMAP servers.

  • It is possible to configure multiple servers.
  • The server is chosen based on regular expressions that are tested against the user supplied login information.
  • There is no number limit in the servers you can configure, and they can be a mix of POP3 and IMAP.
  Authentication is handled by your e-mail server

As the user is validated by the POP3 or IMAP server, and mail is served from there, no additional database backend is needed. There are different authentication schemes available:

  • The username is the email address of the user.
  • The username has nothing to do with email address, so the user has to supply the address after authenticating (this information is cached, so the user only provides it once per session).
  • The user has the choice of providing the full email address to use for authenticating and for sending email, or the supplied username is the local-part of the email address and the domain is automatically appended to it.
  Sends mail through SMTP servers

The SMTP server is also chosen based on user's login information. So you can configure multiple SMTP relays in your webmail system.

The engine used to compose and send the messages can be chosen from the following:

  • System.Web.Mail namespace: The mail is composed and sent using the framework's implementation so the resulting messages are supposed to conform RFCs.
  • DotNetOpenMail: an open source SMTP client library for .net. It has more features than .NET namespace (p. ex SMTP AUTH support)
  • OpenSmtp: Open source smtp assembly that has more features than .NET namespace (p. ex SMTP AUTH support)


  HTML editor for composing emails

Mails are composed using FCKeditor which is an open source HTML text editor that brings to the web many of the powerful functionalities of known desktop editors like Word. It's really lightweight and doesn't require any kind of installation in the client computer.

It has support for IE 5.5+ and Gecko powered browsers (Mozilla, Mozilla Firefox, ...). With other browsers you get a simple textarea, so you can send text messages.

  Multiple attachments

You can download multiple attachments per message. Inline images are displayed by the browser directly.

You can send multiple attachments per message when composing mail (requires write permissions in a temporary folder). It is also possible to attach a file that we have received in other message without downloading it (with the obvious save in bandwidth and time).

These features require write permissions in a temporary folder (configurable). The folder can be independent for reading and sending mails, so you can disable them independently.

  Reads MIME messages

Ability provided by SharpMimeTools, this project was born because I needed an open source mime decoder and I could not find one fully functional. It only decodes messages, as System.Web.Mail namespace can encode them.

SharpMimeTools is also beta software, so it lacks some features and needs intensive testing.

  Inbox handling
  • It is possible to search the inbox. Currently it is possible to search for messages by subject and sender.
  • Mark messages for deletion. Trash page that shows messages that will be deleted when the user logs out.
  • The headers of the messages that have been displayed on the inbox page are cached, so there is no need to contact the server again to display them.
  • Only gets the information of the messages displayed on the current page of the inbox.
  Multilingual user interface

The user interface is rendered in the language of the client's browser. Currently the supported languages are:

  • English - since version 0.1
  • Spanish - since version 0.1
  • Serbian - since version 0.2
  • Danish - since version 0.5
  • Russian - since version 0.7
  • French - since version 0.8
  • Vietnamese - since version 0.8
  • Greek - since version 0.9
  • Romanian - since version 0.9
  • Italian - since version 0.9
  • Portuguese (Brazil) - since version 0.9
  • Chinese (Traditional) - since version 0.10
  • Dutch - since version 0.11
  • Polish - since version 0.11
  • Turkish - since version 0.12
  • Swedish - since version 0.12
  • German - since version 0.12
  • Arabic - since version 0.12
  • Hungarian - since version 0.12
  • Indonesian - since version 0.12
  • Burmese - since version 0.12

For more details click here.

  XP look & feel

The current look & feel looks much like XP. In the future with a user interface written in XHTML, it should be possible to provide multiple look & feels easily.

  Browser compatibility

SharpWebMail is known to work with IE6 and Mozilla FireFox, but it should work with other browsers and versions.

  HTML sanitization

SharpWebMail unwanted portions of HTML content. It has two groups of actions:

  • CommentBlocks: which tries to comment potentially dangerous tags (or just tags that do not make sense on email). For now it comments: script, applet, embed, object, layer, ilayer, iframe. It also comments everything before and after body tag.
  • RemoveEvents: which tries to convert all JavaScript 1.3 Event Handlers into syntactically invalid code.

The sanitizer is not too intelligent for now so it is disabled by default (there is a config option to enable it). It tends to comment too much when it gets confused, but I prefer this to executing unwanted javascript code.

  Address Books

It is possible to configure multiple address books based on fully configurable datasources. The supported query types by now are:

  • LDAP: It supports queries to ldap servers. This includes Active directory servers.
  • OLEDB: It supports queries using any OLEDB data provider installed on your server.
  • ODBC: It supports queries using any ODBC driver installed on your server.

Key features:

  • There is no limit in the number of the address books configured.
  • The address books can be configured in read only mode (so it's not possible for the user to modify them) or in read/write mode.
  • Read/write mode has an import/export interface to ease the address book management.
  • The user can sort them by name or e-mail.
  • It is also possible to configure one of the address books so it is used to look there for the user's real name. So it is pre-filled in the input box when composing messages.

Planned features

  • Fully document everything
  • Check conformance to all relevant RFCs
  • Improve html content sanitizer
  • Finish implementation of the mime decoder
  • Configurable POP before SMTP
  • Some sort of configurable relaying restrictions
  • Configurable restrictions to login to usernames that match some criteria (regular expresions?)
  • Forward messages (w/, w/o attachments)
  • Config options to dis/allow html content, etc. both when sending and reading
  • Better user interface (perhaps written in XHTML and multiple style sheets)
  • More translations

SourceForge Logo

Copyright © 2003 - 2005 Angel Marin All rights reserved.
Last Updated 11/01/05