This is the updated version of the proposal, which incorporates feedback and suggestions from the project’s mentors and the WordPress community.
There’s already a ticket in Trac with a patch to deprecate the core Post By Email functionality. We’ll build a standalone plugin that can serve as a drop-in replacement, allowing us to move forward with removing this functionality from core and adding more features for those who do use it. An overview of the way the core functionality currently works is outlined in the Codex.
- Convert wp-mail.php over to the Plugin API.
- Plugin install: look for old settings and copy them over into the plugin’s options (get them out of the core database settings).
- Create plugin settings page that shows an activity/error log.
- Update refresh methods
- Automatic refresh with wp-cron (preferred) — will still work.
- Automatic refresh hooked to the ‘shutdown’ action, with configurable refresh time — will still work. NOTE: this still requires a hit to the blog to run.
- Remove the old methods from the Codex (loading up wp-mail.php automatically or in an iframe).
- Replace these with a manual “refresh” button on the plugin settings.
- Extend the current deprecation patch
- Include instructions (or maybe auto-install?) for the new plugin (not sure what the protocol is for this, I presume we want to handle it the same way as Links)
- wp-mail.php should just call the action hook.
- Vet existing plugins (search plugin repo) to ensure backward compatibility.
- wp-mail.php should run a check for has_action on the hook to see if there’s anything hooked into it and raise a “doing it wrong” warning if not. (This will check for servers that are calling wp-mail.php directly.)
- Submit for community feedback and testing! Squish bugs.
- Extend functionality (Order and priority TBD)
- Support formatting from HTML emails (bold, italic, links, etc.).
- Support any mail server (Gmail, Yahoo), so you don’t have to set up your own mail server. (This might already be okay, need to review. We might just need better instructions in the Codex with examples of the settings.)
- Support attachments (will be added to the media library for that post and embedded — shortcodes could also be used to specify gallery layouts a la Jetpack).
- Support IMAP access (right now only POP) and SSL.
- Add support for tags/categories/custom taxonomies via shortcode.
- Streamline publishing, maybe with an admin panel to vet unpublished posts (not sure how this works in the current version, should review).
- Whitelist sender emails — looks like the current behavior does vet the sending address against authorized users, so maybe there is nothing to do here, but we should review and see if it needs improvement.
- Implement PIN-based authentication or something similar (email addresses are easy to guess/spoof).
- Support comment reply via email (i.e., filter outgoing mail through the wp-mail function and override the reply-to header).
- Finally, edit/update the Codex page to reflect the new state of the art.
- June 17 – July 17: Convert existing code to plugin, deprecate core
- July 18 – July 25: Feedback/testing/bug fixes
- July 26 – Sept 15: Add new features
- Sept 16 – Sept 23: Final round of review & bug fixes
We may not have enough time to implement all the new functionality, so we’ll prioritize the new features accordingly when we reach that stage of the project.