All Projects → snipsco → Postal

snipsco / Postal

Licence: mit
A Swift framework for working with emails

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Postal

StackViewLayout
Coming soon!
Stars: ✭ 26 (-95.68%)
Mutual labels:  swift-framework
Steampress
A Blogging Engine and Platform written in Swift for use with the Vapor Framework
Stars: ✭ 337 (-44.02%)
Mutual labels:  swift-framework
Swiftinstagram
Instagram API client written in Swift
Stars: ✭ 570 (-5.32%)
Mutual labels:  swift-framework
ios-watchos-tvos-macos-resources
Updated list of Swift frameworks and libraries for iOS, watchOS, tvOS and macOS.
Stars: ✭ 58 (-90.37%)
Mutual labels:  swift-framework
Kdintroview
Stars: ✭ 300 (-50.17%)
Mutual labels:  swift-framework
Owl
A declarative type-safe framework for building fast and flexible lists with UITableViews & UICollectionViews
Stars: ✭ 423 (-29.73%)
Mutual labels:  swift-framework
SwiftArchitectureWithPOP
A base architecture written in swift and protocol oriented, for building new apps easily and quickly
Stars: ✭ 28 (-95.35%)
Mutual labels:  swift-framework
Flightanimator
Advanced Natural Motion Animations, Simple Blocks Based Syntax
Stars: ✭ 588 (-2.33%)
Mutual labels:  swift-framework
Livecollections
Automatically perform UITableView and UICollectionView animations between two sets of immutable data. It supports generic data types and is fully thread-safe.
Stars: ✭ 337 (-44.02%)
Mutual labels:  swift-framework
Assistantkit
Easy way to detect iOS device properties, OS versions and work with screen sizes. Powered by Swift.
Stars: ✭ 569 (-5.48%)
Mutual labels:  swift-framework
RangeUISlider
📱 🔵➖🔵 An iOS range selection slider compatible with UIKit and SwiftUI. Developed using autolayout and highly customizable using IBDesignabled and IBInspectable or programmatically. It support also RTL (right to left) languages automatically out of the box.
Stars: ✭ 98 (-83.72%)
Mutual labels:  swift-framework
EKAstrologyCalc
Astrology Calculator calculates moon's rise/set times, moon Age, moon phases and Zodiac Sign for location and time
Stars: ✭ 31 (-94.85%)
Mutual labels:  swift-framework
Awesome Swift
A collaborative list of awesome Swift libraries and resources. Feel free to contribute!
Stars: ✭ 21,440 (+3461.46%)
Mutual labels:  swift-framework
Leon
Leon is swift library to show and slid images with more gesture
Stars: ✭ 16 (-97.34%)
Mutual labels:  swift-framework
Swiftybeaver
Convenient & secure logging during development & release in Swift 3, 4 & 5
Stars: ✭ 5,392 (+795.68%)
Mutual labels:  swift-framework
STTextView
📝 STTextView is a light-weight library that adds a placeholder to the UITextView.
Stars: ✭ 36 (-94.02%)
Mutual labels:  swift-framework
Xcglogger
A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.
Stars: ✭ 3,710 (+516.28%)
Mutual labels:  swift-framework
Badgehub
A way to quickly add a notification badge icon to any view. Make any view of a full-fledged animated notification center.
Stars: ✭ 592 (-1.66%)
Mutual labels:  swift-framework
Awesome Swift
A curated list of awesome Swift frameworks, libraries and software.
Stars: ✭ 5,201 (+763.95%)
Mutual labels:  swift-framework
Pulltodismiss
You can dismiss modal viewcontroller like Facebook Messenger by pulling scrollview or navigationbar in Swift.
Stars: ✭ 456 (-24.25%)
Mutual labels:  swift-framework

Build Status Carthage Pods Swift 5.0 Platforms

Postal is a swift framework providing simple access to common email providers.

Example

Connect

let postal = Postal(configuration: .icloud(login: "[email protected]", password: "mypassword"))
postal.connect { result in
    switch result {
    case .success:
        print("success")
    case .failure(let error):
        print("error: \(error)")
    }
}

Search

let filter = .subject(value: "Foobar") && .from(value: "[email protected]")
postal.search("INBOX", filter: filter) { result in
    switch result {
    case .success(let indexes):
        print("success: \(indexes)")
    case .failure(let error):
        print("error: \(error)")
    }
}

Fetch

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)")
    }
}

Want to debug your IMAP session ?

postal.logger = { log in
    print(log)
}

What about Mailcore ?

Postal does not address the same goal as MailCore. You can take a look at our thoughts in the TechnicalNotes document.

Provider quirks

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.

Contributing

Postal has been a great effort and we could really use your help on many areas:

  • Finding and reporting bugs.
  • New feature suggestions.
  • Answering questions on issues.
  • Documentation improvements.
  • Reviewing pull requests.
  • Fixing bugs/new features.
  • Improving tests.
  • Contribute to elaborate the Roadmap.

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.

Requirements

  • Xcode 10
  • OS X 10.10 or later
  • iOS 8.0 or later

Installation

Carthage

Postal is Carthage compatible.

  • Add github "snipsco/Postal" to your Cartfile.
  • Run carthage update.

CocoaPods

Postal also can be used by CocoaPods.

  • Add the followings to your Podfile:
use_frameworks!
pod 'Postal'
  • Run pod install.

Manual

  1. Add the Postal repository as a submodule of your application’s repository.
git submodule add https://github.com/snipsco/Postal.git
git submodule update --init --recursive
  1. Drag and drop Postal.xcodeproj into your application’s Xcode project or workspace.
  2. On the “General” tab of your application target’s settings, add Postal.framework to the “Embedded Binaries” section.
  3. If your application target does not contain Swift code at all, you should also set the EMBEDDED_CONTENT_CONTAINS_SWIFT build setting to “Yes”.

License

Postal is released under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].