1. Introduction 1.1. Project/Component Working Name: gmime 1.2. Name of Document Author/Supplier: jerry tan 1.3. Date of This Document: 01/29/08 1.3.1. Date this project was conceived: 11/08/07 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Solaris PAC 1.4.2. The ARC(s) you expect to review your project: LSARC 1.4.3. The Director/VP who is "Sponsoring" this project: robert.odea@sun.com 1.4.4. The name of your business unit: OPG / OpenSource. 1.5. Email Aliases: 1.5.1. Responsible Manager: paul.mei@sun.com 1.5.2. Responsible Engineer: jerry.tan@sun.com 1.5.3. Marketing Manager: dan.roberts@sun.com 1.5.4. Interest List: desktop-discuss@opensolaris.org 2. Project Summary 2.1. Project Description: The GMime suite provides a core library and set of utilities which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME) This library is free software under the terms of the GNU Lesser General Public License. 4. Technical Description: 4.1. Details: GMime is a library for parsing and creating messages using the Multipurpose Internet Mail Extension (MIME) format. Currently, there are several application that use gmime. Balsa ( a mail client for gnome), Pan ( a newsreader), DBMail( a group of programs that enable the possiblilty of storing and retrieving mail messages from a database) Beagle (for indexing email) tracker (indexing email) 4.1.1 Framework of GMime 4.1.1.1 GMime Stream Streams are the fundamental method for reading and writing data used by GMime. its basic API is similar to that of the low-level Unix I/O layer (read(), write(), lseek(), etc) with some additional nicities such as a printf-like function. The three (3) basic stream types are: GMimeStreamFile, GMimeStreamFs and GMimeStreamMem. 4.1.1.2GMime Stream Filters Stream filters are an efficient way of converting data from one format to another. To use a stream filter, you must first construct a GMimeStreamFilter stream and then add the desired filters to it. GMime comes equipped with some basic filters such as GMimeFilterBasic, GMimeFilterCharset, GMimeFilterCRLF, GMimeFilterFrom and GMimeFilterHTML. The GMimeFilterBasic filter is actually a collection of filters for common transfer encodings used by MIME. 4.1.2 How to Use GMime Here is the tutorial http://spruce.sourceforge.net/gmime/tutorial/ A simple testcase show how to use gmime #include #include int main (int argc, char **argv) { GMimeStream *stream; /* initialize GMime */ g_mime_init (0); /* create a stream around stdout */ stream = g_mime_stream_file_new (stdout); /* 'printf' */ g_mime_stream_printf (stream, "Hello World!\n"); /* flush stdout */ g_mime_stream_flush (stream); /* free/close the stream */ g_object_unref (stream); return 0; } 4.2. Bug/RFE Number(s): None. 4.3. In Scope: See above. 4.4. Out of Scope: See above. 4.5. Interfaces: -------------------------------------------------------------------- Exported Stability Comments -------------------------------------------------------------------- /usr/lib/libgmime-2.0.so Volatile library /usr/include/gmime-2.0/* Volatile header files ! /usr/lib/pkgconfig/gmime-2.0.pc Uncommitted package config file ! SUNWlibgmime Uncommitted package Name ! SUNWlibgmime-devel Uncommitted dev package Name -------------------------------------------------------------------- Imported Stability Comments -------------------------------------------------------------------- SUNWlibms Committed LSARC/2003/279 ! GLib Committed LSARC/2006/520 4.6. Doc Impact: add some docs under /usr/share/gtk-doc/html/gmime 4.7. Admin/Config Impact: None. 4.8. HA Impact: None. 4.9. I18N/L10N Impact: The JDS team and the G11N are working together to evaluate and provide I18N/L10N support 4.10. Packaging & Delivery: Adds new packages, SUNWgmime, SUNWgmime-devel 4.11. Security Impact: It can call gnupg to encrypt or crypt content, but since gnupg is not in solaris, this feature does not work. 4.12. Dependencies: Depends on gnome base library, since it is based on glib. 5. Reference Documents: http://spruce.sourceforge.net/gmime/ http://spruce.sourceforge.net/gmime/doc/