Clone wiki

MIMEKit / Home

What is MIME?

MIME is Multipurpose Internet Mail Extensions, a standard for encoding and transmitting data over computer communication networks. While oringally defined as a format for sending rich email content, MIME has been adapted for a variety of communication needs, including several HTTP request/response messaging patterns.

What is MIMEKit?

The MIMEKit Framework provides a native Objective-C implementation for working with MIME messages as defined by RFCs 2045, 2046, 2047, and 2049. MIMEKit also supports reading and writing XOP+XML and MTOM messages for working with SOAP-based web services applications.

MIMEKit supports all defined MIME encoding standards, including pure binary, base64, and quoted-printable. For base64 encoding, MIMEKit makes use of Mattt Gallagher's excellent NSData+Base64 category, which is included in the MIMEKit source tree.

How do I use MIMEKit?

MIMEKit is documented via in-line comments compatible with appledoc and doxygen, either of which can be used to create documentation sets for XCode or standalone HTML pages. (A shell script is provided to compile documentation and install it into XCode using appledoc.)

The full documentation for MIMEKit is available at

To get started with MIMEKit, look at the documentation for PKMIMEMessage and PKMIMEData, in particular the class methods. To translate between MIME messages and images, see the static methods in UIImage+MIME.

A note on ARC

MIMEKit is currently a non-ARC library, and compiler flags will need to be set if used in ARC-compiled projects. MIMEKit will be converted to ARC at some point in the future.

How is MIMEKit licensed?

MIMEKit was originally developed by Portable Knowledge, LLC and is released to the public under the Portable Knowledge Open Source Component License. This license is a very permissive open-source license adapted from the Boost Software License and should be fully GPL and FSF compatible.

In Short:

  • Anyone is free to use and modify this software for any use, private or commercial, provided the original copyright and license text are maintained in any distributed source code.
  • Portable Knowledge, LLC assumes no liability for use of this software
  • No warranty of any kind is provided for this software
  • Portable Knowledge, LLC assumes no responsibility to update or maintain this software in the future, and releases it to the public "as-is"
  • In no case does the use of this software by others imply any partnership or endorsement by Portable Knowledge, LLC

We hope this library is of use to the iPhone and MacOS development community! Please use and share as you see fit.