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)
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapodsTo 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'
endThen, run the following command:
$ pod installImport MimeParser before using it:
import MimeParserCreate 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"MimeParser is available under the MIT license. See the LICENSE file for more info.
MimeParser is still very simple and incomplete, so pull requests welcome!