Latest 0.2.3
Homepage https://github.com/miximka/MimeParser
License MIT
Platforms ios 10.3, osx 10.12

Build Status

About

MimeParser is a simple MIME (Multipurpose Internet Mail Extensions) parsing library written in Swift (to learn more about mimes refer to RFC 822, RFC 2045, RFC 2046)

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate MimeParser into your Xcode project using CocoaPods, specify it in your Podfile:

project '<Your Project Name>.xcodeproj'
platform :osx, '10.12'

target 'Test' do
  use_frameworks!
  pod 'MimeParser', '~> 0.1'
end

Then, run the following command:

$ pod install

Usage

Import MimeParser before using it:

import MimeParser

Create parser object:

let parser = MimeParser()

Let this be a simplest mime to be parsed:

let str = """
    Content-Type: text/plain

    Test
    """

You are ready to parse the mime:

let mime = try parser.parse(str)

Returned mime object is a root of the mime tree and provides access to its header fields and content:

public enum MimeContent {
    case body(MimeBody)
    case mixed([Mime])
    case alternative([Mime])
}

public struct MimeHeader {
    public let contentTransferEncoding: ContentTransferEncoding?
    public let contentType: ContentType?
    public let contentDisposition: ContentDisposition?
    public let other: [RFC822HeaderField]
}

if let contentTypeString = mime.header.contentType?.raw {
    print("(contentTypeString)")
    // "text/plain"
}

if case .body(let body) = mime.content {
    print("(body.raw)")
    // "Test"
}

Decoded mime’s content is simply to retrieve:

let content = try mime.decodedContentData()
// "Test"

License

MimeParser is available under the MIT license. See the LICENSE file for more info.

Contribution

MimeParser is still very simple and incomplete, so pull requests welcome!

Latest podspec

{
    "name": "MimeParser",
    "version": "0.2.3",
    "summary": "Mime parsing in Swift | Relevant RFCs: RFC 822, RFC 2045, RFC 2046",
    "description": "MimeParser is a simple MIME (Multipurpose Internet Mail Extensions) parsing library written in Swift.",
    "homepage": "https://github.com/miximka/MimeParser",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": "miximka",
    "platforms": {
        "ios": "10.3",
        "osx": "10.12"
    },
    "source": {
        "git": "https://github.com/miximka/MimeParser.git",
        "tag": "0.2.3"
    },
    "source_files": "Sources/MimeParser/*.swift"
}

Pin It on Pinterest

Share This