The Mozilla
Organization
Our Mission
Who We Are
Getting Involved
Community
Editorials
What's New
Development
Roadmap
Module Owners
Blue Sky
Projects
Status
Tools
Products
Source Code
Binaries
Documentation
License Terms
Bug Reports
Search
Feedback


mozilla mail/news overview
January 7, 1999

Introduction

The purpose of this document is to explain the mail/news work which is happening inside Netscape, and begin collaboration with open source developers.

History

  • In Netscape-branded versions of Navigator 2.x, 3.x, and Communicator 4.x, the application had built-in support for email and newsgroups. In March 1997, the browser group brought all of their code to mozilla.org. At that time, the mail group was focused on enterprise customers and the features which shipped in Communicator 4.5.
  • In the middle of Communicator 4.5, we attempted to bring all the Messenger code into mozilla, and do 4.5 at the same time. This "Normandy" effort failed, and was abandoned.
  • After Communicator 4.5 shipped, the mozilla/5.0 effort had a major change in direction to use the Gecko layout engine and the XPFE user interface toolkit.
  • Netscape's mail/news group is currently working on bringing the core parts of Messenger into the mozilla/5.0 effort.
What will be in the open source mail/news client?

All the support you've come to expect for SMTP, POP3, IMAP, NNTP, the three pane UI, searching and filtering, message composition, address book, preferences, etc.

What won't be in the open source mail/news client?

  • As with other parts of the product, security-related code such as SSL, S/MIME, etc. will not be released to mozilla.
  • This section describes some things Netscape's engineering team may not be doing. Just because we don't do something doesn't mean you can't do it. In fact, we hope you do lots of things we don't do ourselves. See Getting Involved. We're just setting expectations about what working code you should expect to see from us.
    • In Communicator 4.5, we built database infrastructure to support very large address books. The reason to do this work was to support replicas of LDAP directories for offline use. Our open source DB, called MORK, may not meet the scalability target we had in 4.5.
    • The mozilla classic code contains lots of stuff which has been done better, faster, smaller in the latest code. We won't be bringing any old code with us. Where there's a better way to do something, we'll be using the new way.
What about SmartMail and Grendel?
  • Mozilla mail/news will be capitalizing on a number of the ideas shown in SmartMail. We will be using RDF and XPFE, although those technologies have evolved somewhat since SmartMail was shown. We probably won't be using much actual code from SmartMail.
  • Grendel was a separate effort to write a new mail/news client in Java, and was not completed. Most people currently working on mail/news are not intimately familiar with Grendel, but any/all good ideas may be submitted using typical mozilla.org channels. Netscape's mail/news engineers probably won't be enhancing Grendel.
Architecture

Our general plan is to bring the critical pieces of Messenger over to mozilla/5.0 and rewrite/reorganize code as we need to in order to fit in. Some of the major pieces of work are described here.

Networking (module owner: Scott MacGregor)

We are porting all of our protocol handlers to work in the new netlib world. We are doing two fundamental things to make this work:

  • We are using a "proxied stream" interface between the netlib thread and the protocol module. So all of the code you're used to seeing in mkpop3.c, mknews.c, etc. will be living on the mozilla thread, and there will be a stream interface across the thread boundary to netlib.
  • We are converting all of the "up-calls" from the protocol handlers to the rest of the backend (see libmsg) into XP-COM interfaces to avoid tight coupling between components.
Database (module owner: David McCusker)

We are developing a new database strategy for mail/news (summary files and address books).

  • We have developed a database abstraction called MDB which we hope will be general enough to allow databases great and small to live under its API. Netscape's mail/news group will be providing a relatively simple text-based database under that API for Messenger 5.0.
  • Our 5.0 implementation of MDB is called MORK. If you're interested in mail/news databases, lots of design discussion is happening in netscape.public.mozilla.mail-news
User Interface (module owner Warren Harris; use the newsgroup)

We are committed to the XPFE strategy and toolkit. We do not expect to write much, if any, platform specific UI using MFC, PowerPlant, or Motif. We are working on a new visual appearance for mail/news right now.

Back-end (module owner Phil Peterson; use the newsgroup)

In Communicator 4.x, there was a bunch of "view layer" code which managed adding and deleting items from outliners (e.g. messages in the thread pane or folders/newsgroups in the folder pane). In the XPFE/RDF world, most of this functionality is supplanted by RDF and the DOM. Therefore, most of the mail/news application will probably live behind RDF data sources. We may need some view-level code inside the DOM's content model, but we haven't figured that out yet.
 

libmime (MIME Parsing) (module owner Rich Pizzarro)

We are reworking the client side mime parsing for Messenger 5.0 to be a more modular component with an XP-COM interface rather than a statically linked library as was the case in previous releases. This module will implement a generic stream converter interface that is currently under development. Also a part of this development is the creation of the ability to write Content Type Handler Plugins for libmime. This effort can be seen at the following link: Content Type Handler Plugins

Getting involved

We'll be adding code to /mozilla/mailnews as we get code running in the architectural schemes given above. Until the app is really up and running (which could be another two months or so), the mail-news newsgroup is probably the best place for ideas and questions.



Copyright © 1998 The Mozilla Organization.