Postal is a swift framework providing simple access to common email providers.
let postal = Postal(configuration: .icloud(login: "myemail@icloud.com", password: "mypassword")) postal.connect { result in switch result { case .Success: print("success") case .Failure(let error): print("error: /(error)") } }
let filter = .subject(value: "Foobar") && .from(value: "foo@bar.com") postal.search("INBOX", filter: filter) { result in switch result { case .Success(let indexes): print("success: /(indexes)") case .Failure(let error): print("error: /(error)") } }
let indexset = NSIndexSet(index: 42) postal.fetchMessages("INBOX", uids: indexset, flags: [ .headers ], onMessage: { email in print("new email received: /(email)") }, onComplete: error in if error = error { print("an error occured: /(error)") } }
Postal does not address the same goal as MailCore. You can take a look at our thoughts in theTechnicalNotes document.
Email protocol is standardized. However providers implementations often provides extension or variations of these standards. We tried to build a document to synthesize working around these variations here:ProviderQuirks.
Postal has been a great effort and we could really use your help on many areas:
If any of that sounds cool to you, please send a pull request!
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms that you can find here:CodeOfConduct.
Postal isCarthage compatible.
github "snipsco/Postal"
to your Cartfile. carthage update
. Postal also can be used by CocoaPods .
Add the followings to your Podfile:
use_frameworks!
pod "Postal"
pod 'Postal/ReactiveCocoa'
Run pod install
.
Postal is released under theMIT License.