by Jeffrey Stedfast <>

What is GMime?

GMime is a C/C++ library which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME), as defined by the following RFCs:

Other RFCs of interest:

Cryptography related RFCs (needed by S/MIME)

License Information

GMime, Copyright (C) 2000-2014 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.


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 or

Information regarding GMime may be obtained from the GMime website:

Experimental versions of GMime may be obtained issuing the following command:

git clone git://

Requirements for GMime 2.6.x

For proper compilation and functionality of GMime 2.6.x, the following packages are REQUIRED:

Requirements for GMime 2.4.x

For proper compilation and functionality of GMime 2.4.x, the following packages are REQUIRED:

Requirements for GMime 2.2.x

For proper compilation and functionality of GMime 2.2.x, the following packages are REQUIRED:


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
AUTHORSList of primary authors (source code developers)
COPYINGThe GNU Lesser General Public License, version 2
ChangeLogLog of changes made to the source code
INSTALLIn-depth installation instructions
NEWSRelease notes (Overview of changes)
TODODescription of planned GMime development
PORTINGGuide for developers porting their application from an older version of GMime

You can find online developer documentation at

You can find the beginnings of a tutorial at


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


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

For those interested in using GMime from .NET 4.0 (or later), I recommend using MimeKit.

Reporting Bugs

Bugs may be reported to the GMime development team by submitting a bug report for the "gmime" module at

Revision 19 Feb, 2014