What is GMime?
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), as defined by the following RFCs:
- 0822: Standard for the Format of Arpa Internet Text Messages
- 1521: MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies
- 1847: Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted
- 1864: The Content-MD5 Header Field (Obsoletes rfc1544)
- 2015: MIME Security with Pretty Good Privacy (PGP)
- 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
- 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
- 2047: Multipurpose Internet Mail Extensions (MIME) Part Three: Message Header Extensions for Non-ASCII Text
- 2048: Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures
- 2049: Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples
- 2183: Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
- 2184: MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations
- 2231: MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations (Obsoletes rfc2184)
- 2822: Internet Message Format (Obsoletes rfc822)
- 3156: MIME Security with OpenPGP (Updates rfc2015)
Other RFCs of interest:
- 1872: The MIME Multipart/Related Content-type
- 1927: Suggested Additional MIME Types for Associating Documents
- 2311: S/MIME Version 2 Message Specification
- 2312: S/MIME Version 2 Certificate Handling
- 2387: The Multipart/Related Content-Type.
- 2424: Content Duration MIME Header Definition
- 2630: Cryptographic Message Syntax
- 2632: S/MIME Version 3 Certificate Handling
- 2633: S/MIME Version 3 Message Specification
- 2634: Enhanced Security Services for S/MIME
Cryptography related RFCs (needed by S/MIME)
License Information
GMime, MIME-handling suite, Copyright (C) 2000-2008 Jeffrey Stedfast.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
History
As a developer and user of Electronic Mail clients, I had come to realize that the vast majority of E-Mail client (and server) software had less-than-satisfactory MIME implementations. More often than not these E-Mail clients created broken MIME messages and/or would incorrectly try to parse a MIME message thus subtracting from the full benefits that MIME was meant to provide. GMime is meant to address this issue by following the MIME specification as closely as possible while also providing programmers with an extremely easy to use high-level application programming interface.
Obtaining GMime
Sources to GMime may be obtained from http://download.gnome.org/sources/gmime, ftp://ftp.gnome.org/pub/GNOME/sources/gmime or from http://spruce.sourceforge.net/gmime/sources.
Information regarding GMime may be obtained from the GMime website: http://spruce.sourceforge.net/gmime/
Experimental versions of GMime may be obtained issuing the following command:
svn co http://svn.gnome.org/svn/gmime/trunk gmime
Requirements for GMime 1.0.x
For proper compilation and functionality of GMime, the following packages are REQUIRED:
- Glib version 1.2.x
Glib provides a number of portability-enhancing functions and types. Glib is included in most GMime-supported operating system distributions. Glib sources may be obtained from: ftp://ftp.gtk.org/pub/gtk/v1.2
Requirements for GMime 2.x
For proper compilation and functionality of GMime, the following packages are REQUIRED:
- Glib version 2.x
Glib provides a number of portability-enhancing functions and types. Glib is included in most GMime-supported operating system distributions. Glib sources may be obtained from: ftp://ftp.gtk.org/pub/glib
Documentation
This is the README file for GMime. Additional documentation related to development using GMime has been included within the source release of GMime.
docs/reference/ Contains SGML and HTML versions of the GMime API reference manual docs/tutorial/ Contains SGML and HTML versions of the GMime programming tutorial rfc/ Contains text versions of the RFCs for the specifications GMime supports AUTHORS List of primary authors (source code developers) COPYING The GNU General Public License, version 2 ChangeLog Log of changes made to the source code INSTALL In-depth installation instructions NEWS Release notes (Overview of changes) TODO Description of planned GMime development PORTING Guide for developers porting their application from an older version of GMime
You can find online developer documentation at http://spruce.sourceforge.net/gmime/doc
You can find the beginnings of a tutorial at http://spruce.sourceforge.net/gmime/tutorial
Mailing-List
For discussion of GMime development (either of GMime itself or using GMime in your own application), you may find the GMime-Devel mailing-list helpful. To subscribe, please see http://mail.gnome.org/mailman/listinfo/gmime-devel-list.
Bindings
There are a number of efforts to bring GMime bindings to other programming languages. (Note: these bindings are maintained by other people, so please don't submit bug reports about them to me)
Binding Location Bug Reports Perl MIME::Fast MIME::Fast Bugs Mono/.NET Included in the GMime source packages http://bugzilla.gnome.org
Reporting Bugs
Bugs may be reported to the GMime development team by submitting a bug report for the "gmime" module at http://bugzilla.gnome.org