{"id":1671,"url":"https://github.com/MailCore/mailcore2","last_synced_at":"2025-08-02T04:32:41.723Z","repository":{"id":6293105,"uuid":"7527552","full_name":"MailCore/mailcore2","owner":"MailCore","description":"MailCore 2 provide a simple and asynchronous API to work with e-mail protocols IMAP, POP and SMTP. The API has been redesigned from ground up.","archived":false,"fork":false,"pushed_at":"2023-02-13T11:47:32.000Z","size":39728,"stargazers_count":2663,"open_issues_count":232,"forks_count":637,"subscribers_count":96,"default_branch":"master","last_synced_at":"2025-07-22T03:26:32.395Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MailCore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2013-01-09T19:35:49.000Z","updated_at":"2025-07-21T08:43:35.000Z","dependencies_parsed_at":"2024-01-07T22:35:29.361Z","dependency_job_id":null,"html_url":"https://github.com/MailCore/mailcore2","commit_stats":{"total_commits":1626,"total_committers":129,"mean_commits":"12.604651162790697","dds":"0.45079950799507995","last_synced_commit":"7417b2e8dd7e2c028aadb72056e4d1428c0627c4"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/MailCore/mailcore2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MailCore%2Fmailcore2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MailCore%2Fmailcore2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MailCore%2Fmailcore2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MailCore%2Fmailcore2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MailCore","download_url":"https://codeload.github.com/MailCore/mailcore2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MailCore%2Fmailcore2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268334618,"owners_count":24233793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-01-05T20:15:52.915Z","updated_at":"2025-08-02T04:32:38.827Z","avatar_url":"https://github.com/MailCore.png","language":"C++","funding_links":[],"categories":["Networking","C++","others"],"sub_categories":["Email","Other free courses"],"readme":"## MailCore 2: Introduction ##\n\nMailCore 2 provides a simple and asynchronous Objective-C API to work with the e-mail protocols **IMAP**, **POP** and **SMTP**. The API has been redesigned from the ground up.  It features:\n\n- **POP**, **IMAP** and **SMTP** support\n- **[RFC822](http://www.ietf.org/rfc/rfc0822.txt)** parser and generator\n- **Asynchronous** APIs\n- **HTML** rendering of messages\n- **iOS** and **Mac** support\n\n[![Build Status](https://travis-ci.org/MailCore/mailcore2.png?branch=master)](https://travis-ci.org/MailCore/mailcore2)\n\n\n## Installation ##\n\n### Build for iOS/OSX ###\n\nRead [instructions for iOS/OSX](https://github.com/MailCore/mailcore2/blob/master/build-mac/README.md).\n\n### Build for Android ###\n\nRead [instructions for Android](https://github.com/MailCore/mailcore2/blob/master/build-android/README.md).\n\n### Build for Windows ###\n\nRead [instructions for Windows](https://github.com/MailCore/mailcore2/blob/master/build-windows/README.md).\n\n### Build for Linux ###\n\nRead [instructions for Linux](https://github.com/MailCore/mailcore2/blob/master/build-linux/README.md).\n\n## Basic IMAP Usage ##\n\nUsing MailCore 2 is just a little more complex conceptually than the original MailCore.  All fetch requests in MailCore 2 are made asynchronously through a queue.  What does this mean?  Well, let's take a look at a simple example:\n\n```swift\n  let session = MCOIMAPSession()\n  \n  session.hostname       = \"imap.gmail.com\"\n  session.port           = 993\n  session.username       = \"ADDRESS@gmail.com\"\n  session.password       = \"123456\"\n  session.connectionType = .TLS\n  \n  let folder = \"INBOX\"\n  let uids   = MCOIndexSet(range: MCORange(location: 1, length: UInt64.max))\n  \n  if let fetchOperation = session.fetchMessagesOperation(withFolder: folder, requestKind: .headers, uids: uids) {\n    fetchOperation.start { error, fetchedMessages, vanishedMessages in\n      // We've finished downloading the messages!\n      \n      // Let's check if there was an error\n      if let error = error {\n        print(\"Error downloading message headers: \\(error.localizedDescription)\")\n      }\n      \n      // And, let's print out the messages:\n      print(\"The post man delivereth: \\(fetchedMessages.debugDescription)\")\n    }\n  }\n```\n(You can also read an [Objective-C Version](https://github.com/MailCore/mailcore2/wiki/IMAP-Examples))\n\nIn this sample, we retrieved and printed a list of email headers from an IMAP server.  In order to execute the fetch, we request an asynchronous operation object from the `MCOIMAPSession` instance with our parameters (more on this later).  This operation object is able to initiate a connection to Gmail when we call the `start` method.  Now here's where things get a little tricky.  We call the `start` function with a block, which is executed on the main thread when the fetch operation completes.  The actual fetching from IMAP is done on a **background thread**, leaving your UI and other processing **free to use the main thread**.\n\n## Documentation ##\n\n* Class documentation [Obj-C](http://libmailcore.com/api/objc/index.html) / [Java](http://libmailcore.com/api/java/index.html)\n* [Wiki](https://github.com/MailCore/mailcore2/wiki)\n\n## License ##\n\nMailCore 2 is BSD-Licensed.\n\n## MailCore Supporters ##\n\n[\u003cimg src=\"https://triage.cc/triage-badge.png\" width=\"180\"\u003e](https://triage.cc?ref=mailcore)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMailCore%2Fmailcore2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMailCore%2Fmailcore2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMailCore%2Fmailcore2/lists"}