Postie offers many advanced features for creating posts by email, including the ability to assign categories by name, included pictures and videos, and automatically strip off signatures.
Postie supports both IMAP and POP including SSL/TLS.
There is also an extensive set of filters/actions for developers to extend Postie’s functionality.
For usage notes, see the other notes page.

More info at


  • Supports IMAP or POP3 servers
  • SSL and TLS supported
  • Control who gets to post via email
  • Set defaults for category, status, post format, post type and tags.
  • Set title, category, status, post format, post type, date, comment control and tags in email to override defaults.
  • Specify post excerpt (including excerpt only images).
  • Use plain text or HTML version of email.
  • Remove headers and footers from email (useful for posting from a mailing list).
  • Optionally send emails on post success/failure.
  • Control the types of attachments that are allowed by file name (wildcards allowed) and MIME type.
  • Optionally make the first image the featured image.
  • Gallery support.
  • Control image placement with plain text email.
  • Templates for images so they look the way you want.
  • Templates for videos.
  • Templates for audio files.
  • Templates for other attachments.
  • Email replies become comments.



Please visit our site at


  • Postie server options
  • Postie user options
  • Postie message options
  • More message options
  • Even more message options
  • Image options
  • Video and Audio options
  • Attachment options


  • Install Postie either via the plugin directory, or by uploading the files to your server.
  • Activate Postie through the Plugins menu in WordPress.
  • Configure the plugin by going to the Postie menu that appears in your admin menu.
  • Make sure you enter the mailserver information correctly, including the type of connection and the port number.
  • More information can be found at


Please visit our FAQ page at


July 5, 2023
Works great for me and I really love it! Helps when I'm at home where there's poor cell signal. I can compose posts from my phone and put them in email outbox. When I drive for errands, I wouldn't have time to blog, but there go the posts. Thanks SO MUCH for your hard work in making this available and keeping updated.
March 25, 2023
Is a fantastic plugin, it allows a great flexibility, and if you set up correctly all the tags, you can save hours and hours! Super recommended
Read all 134 reviews

Contributors & Developers

“Postie” is open source software. The following people have contributed to this plugin.


“Postie” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “Postie” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


=1.9.68 (2023-12-11)
* Fix email subject and body of confirmation email if there are html entities in the blog name.

=1.9.67 (2023-11-20)
* Add option to suppress postie div

= 1.9.66 (2023-11-06)
* Fix deprecation message for PHP 8.2
* Prevent post notification email if post was trashed

= 1.9.65 (2023-01-30)
* remove calls to uname() as it typically isn’t allowed on hosting platforms.

= 1.9.64 (2023-01-24)
* fix for strange issue with PHP 8.1

= 1.9.63 (2022-12-29)
* update simple_html_dom
* update requirements (WP5.6/PHP7.0)

= 1.9.62 (2022-09-21)
* Timezone fix from
* Add translation support to more strings

= 1.9.61 (2022-06-24)
* Fix warning when MIME type is not recognized.

= 1.9.60 (2022-04-13)
* Add translatable strings to email notification

= 1.9.59 (2022-01-02)
* fix surrounding div with postie-post class name for plain text messages

= 1.9.58 (2021-12-27)
* deal with possibility of no post formats (reported by @rogerlos)
* add surrounding div with postie-post class name for CSS rules for themes.

= 1.9.57 (2021-09-07)
* if any attachment doesn’t have a file extension use the secondary mime type

= 1.9.56 (2021-08-06)
* remove Allow HTML In Mail Body from settings as it didn’t do anything
* add Allow Duplicate Comments setting to deal with WordPress killing the import
* fix issue where unknown email was leaving tmppost, now creates draft message
* add setting to disable legacy commands

= 1.9.55 (2021-03-09)
* Add post id to action postie_comment_after
* remove Create Alternate Image Sizes from settings as it didn’t do anything
* Add compatibility for WordPress 5.7

= 1.9.54 (2020-10-18)
* Add compatibility for WordPress 5.5

= 1.9.53 (2020-06-05)
* Add postie_subject filter

= 1.9.52 (2020-05-19)
* Fix issue with detecting categories when there are multiple colons in the subject line

= 1.9.51 (2020-05-08)
* remove ob_end_flush from log_onscreen()

= 1.9.50 (2020-04-21)
* Add more wp_insert_post failure logging

= 1.9.49 (2020-04-19)
* Add more wp_insert_post failure logging

= 1.9.48 (2020-04-18)
* Add more wp_insert_post failure logging

= 1.9.47 (2020-04-16)
* Add wp_insert_post failure logging

= 1.9.46 (2020-04-11)
* escape IMAP password
* fix logging in get_parent_postid
* ensure any modification by shortcode are retained

1.9.45 (2020-03-29)

  • Fix email notification bug

1.9.44 (2020-03-23)

  • refactoring to separate email fetch from email processing
  • add postie_register_shortcode_pre action for registering Postie shortcodes

1.9.43 (2020-02-18)

  • Begin migration of shortcode support into Postie main

1.9.42 (2020-02-18)

  • Fix: signature stripping in html emails was failing sometimes

1.9.41 (2020-02-01)

  • Fix: different regex approach for html vs plain
  • Only process 1 email at a time

1.9.40 (2019-11-13)

  • Fix issue with class-oembed.php upgrade

1.9.39 (2019-11-12)

  • Add Site Health checks
  • PHP 7.3 compatibility
  • Fix bug where if Remove matched categories is No then the default category is always set.
  • Address deprecated file class-oembed.php

1.9.38 (2019-07-27)

  • Fix bug where filtering out an attachment prevented other attachments from being processed

1.9.37 (2019-06-20)

  • Update logging to output encoding info
  • Fix bug where non-image titles are blank

1.9.36 (2019-06-11)

  • Fix bug where image titles are blank

1.9.35 (2019-05-31)

  • Allow for a single admin when sending post confirmation emails

1.9.34 (2019-05-15)

  • Workaround for WP bug #39521 to correctly set image caption from image metadata

1.9.33 (2019-04-29)

  • Assign author to all media items

1.9.32 (2019-03-02)

  • Move intermediate_image_sizes_advanced filter to only be effective when Postie is running

1.9.31 (2019-02-28)

  • Additional logging to chase down customer issue

1.9.30 (2019-02-25)

  • WP 5.1 compatibility testing
  • Add setting to skip image resizing

1.9.29 (2019-02-18)

  • Fix delay, command was not being removed from content in all cases
  • Additional debug output to track down attachment issue

1.9.28 (2019-01-10)

  • fix IMAP end of message detection
  • remove insecure cURL settings
  • fix simple_html_dom regex to be compatible with PHP 7.3

1.9.27 (2018-12-20)

  • Add new filter postie_parent_post to allow custom parent post detection
  • Existing parent post detection now only looks at the configured post type and uses the most recent if multiple are found

1.9.26 (2018-11-23)

  • If no category is specified and the post type is “page” then the default category is not added
  • Additional CID changes

1.9.25 (2018-10-02)

  • Add support for CIDs with surrounding <>
  • Add support for URLs with unusual characters

1.9.24 (2018-07-12)

  • log functions that use Postie filters
  • remove empty tags

1.9.23 (2018-05-28)

  • Fix issue when attachment doesn’t conform to MIME standard

1.9.22 (2018-05-28)

  • Remove Text for Message Start and Text for Message End defaults as they conflicted with some CSS

1.9.21 (2018-05-08)

  • Fix: WP is removing backslashes so double them up before saving

1.9.21 (2018-04-11)

  • Fix: Compatibility with PHP 5.2-5.4

1.9.20 (2018-04-11)

  • Fix: Don’t emit attachment div if there is no content after template generation

1.9.19 (2018-03-21)

  • Fix: Recognize paragraph line ending in text mode for both styles

1.9.18 (2018-03-13)

  • Fix: new signature removal logic removed line endings in some cases

1.9.17 (2018-03-12)

  • Fix: Plain text with < > being processed as html causing loss of content during signature removal

1.9.16 (2018-02-21)

  • Fix: don’t linkify URLs in style attributes

1.9.15 (2018-01-25)

  • Fix: accommodate extra spaces in content type header when charset is specified

1.9.14 (2017-12-01)

  • Feature: Additional logging of graphics library in use.

1.9.13 (2017-11-22)

  • Feature: New filter postie_include_attachment to allow/prevent attachment to be added to post. See

1.9.12 (2017-11-15)

  • Fix: use wp native function to detect MySQL version

1.9.11 (2017-11-10)

  • Fix: remove encoding option, everything is UTF-8.
  • Feature: add MySQL version to debug output, suppress many email parsing debug messages
  • Fix: don’t set actual post format if “standard”
  • Feature: Hides WordPress post-by-email feature if Postie is active

1.9.10 (2017-10-31)

  • Fix: WP CLI compatibility

1.9.9 (2017-10-30)

  • Fix: remove assumption that there is a user with the administrator role

1.9.8 (2017-10-23)

  • Fix: check that global is initialized before using

1.9.7 (2017-10-19)

  • Fix: more robustness if iconv fails

1.9.6 (2017-10-19)

  • Fix: Post format was not being correctly set.

1.9.5 (2017-10-13)

  • Feature: change post status to pending/draft if the user doesn’t have publish_posts capability
  • Fix: process postie_email_notify_recipients filter regardless of the “Send post confirmation email to” setting
  • Fix: process postie_email_reject_recipients filter regardless of the “Send post confirmation email to” setting

1.9.4 (2017.08.10)

  • Fix: Incorrectly looking for links in html head style blocks

1.9.3 (2017.08.04)

  • Feature: Add “every 2 hours” option
  • Fix: Include actual response when IMAP authentication fails
  • Fix: Incorrectly processing text/html sections as attachments in some cases

1.9.2 (2017.07.24)

  • Fix: Uninitialized variable in Postie::create_post()
  • Fix: More robust tag detection

1.9.1 (2017-06-28)

  • Feature: Add postie_file_added_pre action
  • Fix: improvements to tag detection
  • Fix: tags may be specified multiple times
  • Fix: significant code restructure to bring Postie in line with current coding practices
  • Fix: move signature removal to before newline filtering
  • Fix: signature removal was deleting all text if the matching regex had whitespace characters

1.8.45 (2017-06-21)

  • Feature: If image placement directive has a caption, update the image metadata to include the caption.
  • Fix: Only process delay tag if date was found in header
  • Fix: Date tag overrides header and no offsets are applied
  • Fix: Check for term slug as well as name

1.8.44 (2017-06-14)

  • Ensure only users from current site are validated.
  • Process newlines earlier in process.
  • WordPress 4.8 compatibility testing.

1.8.43 (2017-05-10)

  • Fix “postie-attachments” div to wrap the right content
  • Fix time zone adjustment

1.8.42 (2017-05-10)

  • Wrap all attachments in div with css class “postie-attachments”
  • Remove APOP authentication attempt as some servers disconnect on failure.

1.8.41 (2017-05-05)

  • Organizational changes in prep for move to more OO approach
  • Fix error when time offset is negative.

1.8.40 (2017-04-24)

  • Ensure date set to current date when configured
  • Compatibility testing with WordPress 4.7.4

1.8.39 (2017-04-18)

  • Ensure the time zone is set when calculating the post time.
  • Additional debug output

1.8.38 (2017-04-06)

  • Update postie_notify_error to be less noisy.

1.8.37 (2017-04-05)

  • Remove DateTimeImmutable references to be compatible with old versions of PHP

1.8.36 (2017-04-05)

  • Allow user to specify a IMAP folder (supplied by Alejandro Liu)
  • Fix postie_file_added action
  • New setting “use time offset” which controls whether or not the postie time offset is …