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 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
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"
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!