Home - lksoft/MailPluginManager GitHub Wiki

Welcome to the Mail Plugin Manager toolset!

Mail Plugin Manager Icon

Mail plugin developers have specific challenges when creating a product and we all share some similar tasks that we ought to handle similarly, in order to ensure that our customers all understand the issues and can deal with those as easily as possible. These include ensuring that their plugins are up-to-date, working around Mail's sandbox, getting crash reports and proper installation of the plugin.

The Mail Plugin Manager toolset helps to standardize these tasks and give the user some control over the plugin environment, while allowing the developer to focus on writing the product that they need.


Main Features

  • Mail Plugin Manager (for users)
  • Installation
  • Uninstallation
  • Automatic Updates (without having to add a framework to your plugin)
  • Ability to send crash reports back to developer
  • Checks for compatibility of plugins at boot time (i.e. after an install)
  • Determine relevant information about the user's system (Mail, Message, etc.)
  • Allow the loading/unloading of LaunchAgents
  • Keep updated list of OS versions, including future versions, that are accessible to plugins
  • Preference migration into OS X sandbox for Mail
  • Ensures that Mail has been launched at least once to ensure that all the directories and such are there
  • Display list of plugins available on the internet that can be installed

The features provided are separated into 3 separate applications, a user facing app and a faceless app that always work together and the separate installer. In truth the faceless app (MailPluginTool), is not truly faceless as it does interact with the user, but it is a NSUIElement = 1 application.

The MailPluginTool application is be embedded inside of the Mail Plugin Manager application. When plugins call it this will be done using a file-based mechanism in order to be compatible with the sandbox. A .h file will be available with macros defined for the calls to the MailPluginTool. It's done this way in order to avoid namespace conflicts between plugins using this code. A List is provided in these docs so you can see what you can do.

The Installer comes as a pre-built application that your build process will need to modify and resign, but there are scripts available to help you construct your complete installer.

This manager supports Lion, Mountain Lion & Mavericks.

Why use this toolset?

  1. It allows you to easily integrate Sparkle, which isn't difficult in and of itself, but for plugins it can be a problem, when other plugins also include Sparkle. This way you don't have to maintain an additional application to avoid those problems.
  2. It gives you some tools to preemptively deal with Mail upgrades and UUID issues.
  3. It provides debugging tools for your user, i.e. system info collection and crash reports.
  4. It gives the user an easy way to manage the plugin.
  5. It provides a simplified installer and uninstaller, again without you having to maintain another separate application.
  6. It allows for the installation of plugins that have been made known to it as a way for promotion of a product.
  7. Integration for you is simple and straightforward, with no other dependencies.
  8. The more developers support Mail Plugin Manager, the more users will have a better Mail plugin experience.

Mail Plugin Manager Window

This interface is for the user to interact with and is the default mode when the Mail Plugin Manager is opened without a file. Here is an example of what it looks like:

Mail Bundle Manager Window


Contents

  1. Read about the Mail Plugin Manager
  2. See how to integrate the MailPluginTool
  3. Find out how to use the Plugin Installer

Thanks to Fabian Jäger from Chungwasoft for his contributions to Version 2.0.

⚠️ **GitHub.com Fallback** ⚠️