Download Tag: post

Remote Featured Image

This addon will look through your email and find all the images that were not included in the email (e.g. <img> tags). It will examine the images and select the largest one as the featured image.

There are no settings, just install and activate.

Fix Video/oEmbed Links

The Fix Video/oEmbed Links AddOn will “undo” the formatting that many email clients add to links which will enable videos or any embeddable content supported by WordPress to be displayed inline rather than as a link. This will only work for services supported by WordPress or added by another plugin. See for a list.

For example, you paste into your email. By the time Postie sees the email it looks like <a href=””></a> which WordPress doesn’t know is a link to a video so it is just displayed as a link.

With the addon enabled Postie will recognize the content as a YouTube video and alter the markup so WordPress knows how to display it correctly.

Text Extractor

The Text Extractor AddOn will look for any attached PDF, DOC, DOCX or RTF file and extract the text and use that text for the post content.

Note that this addon only extracts text, not formatting and not images.

There is one option that if checked will add a link to the original document at the end of the post (disabled by default).

Category for Media AddOn

The Category for Media AddOn will assign all the categories you assigned to the post to all media items included in the email.

For example if you assign the category “horse” to the post, it will also get assigned to any images in the email. This can be used to set up galleries where you show images for a specific category.

This addon is compatible with the Category Per User AddOn

Note that this AddOn will not apply media categories created by Enhanced Media Library.

Code Word AddOn

This AddOn lets you add some extra control around what gets published by looking at the content for either a required word/phrase or forbidden words/phrases. This provides an additional layer of protection from undesired emails getting published even if they are from an authorized user.

You can specify a required word/phrase that must be present in the email otherwise it won’t be published. You can leave this option blank if you don’t want to require a word/phrase.

You can provide a list of words/phrases of “forbidden” words. If any of these are found then the email isn’t published. This can also be left blank.

The action options let you control what happens if the email isn’t going to be published. If you choose “ignore” and you have the “Return rejected mail to sender” set to Yes then the sender will receive an email letting them know it wasn’t published and why. If you select “draft” the email will be turned into a post, but published in draft status so it won’t show up until you go in and manually publish it.

You can also specify if you want to look in the subject, body or both.


Newsletter Fixer AddOn

This AddOn will inline any CSS. The primary use is to fix up email newsletters which tend to have lots of CSS that is ignored by WordPress. This AddOn will help these newsletters look much better in your blog.

No configuration required, just install and activate.

Minimum requirements: PHP 5.3 and Postie 1.9.4

Release Notes

1.0.5 – 2018-03-04

  • Enhancement: Force CSS style reset for email content to override theme css.

1.0.4- 2018-02-19

  • Fix: In some cases the style fixups were not applied

1.0.3 – 2018-02-19

  • Remove unused files

1.0.2 – 2017-10-11

  • Fix: Skip processing if previous addon doesn’t want to publish

1.0.1 – 2017-08-10

  • Initial release

Create Categories AddOn

This AddOn will create any categories specified in the subject line if they don’t already exist.

It is recommended that you set the “Match short category” to “No”

No configuration required, just install and activate.

Requires Postie 1.8.32 or later.

Shortcodes AddOn

Control your Postie posts with shortcodes!

With this AddOn not only can you control your title, post format, post type, comment control, post status, tags, categories, post date and excerpt using simple shortcodes, but there are new features as well.

Simply add the desired shortcodes in the body of the email.

New features not available in Postie

This AddOn also give you the ability to:

  • Insert an image from the media library
  • Set an image from the media library as the featured image
  • Insert custom fields
  • Mark a post as featured/sticky
  • Control pingbacks
  • Insert a “read more” marker
  • Insert a “next page” marker for multi-page posts
  • Set the author
  • Attach terms in custom taxonomies
  • Set the post slug
  • Set the parent page
  • Update/replace post
  • Add a password to a post

Add your own custom shortcodes. You can add you own Postie shortcodes as described here.



[ppassword password="secure_password"]

This will add a password to the post.


[preplace post=121]
[preplace post="post_slug"]
[preplace post=121 posttype="*"]

To update a post create your email as usual then add [preplace] at the end. In order for Postie to know which post to replace your email subject must match the post title exactly or you can add the “post” attribute and specify either a post id or the post slug.

Optionally you can provide a posttype attribute to specify the post type you are replacing or “*” to indicate any posttype. Otherwise Postie will only replace a post if the posttype matches the default posttype.


[pimage id=101]

This will insert the image with id 101 into the post. The image is assigned the CSS class postie-shortcode-image if you want to style it. Typically you’d use this when you want to use an image already in your media list. Since the id is unknown ahead of time you can’t use this to specify an image in the email.


[pslug slug="my awesome slug"]

This will set the post slug to “my-awesome-slug”. Note that WordPress will “sanitize” anything you put in the slug value so that it is valid in a URL and that it is unique.


[pfeatured id=101]

This will assign the image with id 101 as the featured image for the post. Typically you’d use this when you want to use an image already in your media list. Since the id is unknown ahead of time you can’t use this to specify which image in the email should be the featured image.



This will make the post a featured/sticky post.



This will insert a “read more” marker into the post.



This will insert a page break into the post so that you can have multi-page posts.


[ptitle title="My cool title"]

This change the title of the post to “My cool title” regardless of the subject line of the email.


[pformat format=quote]

This will change the post format to a quotation. Any post format your site supports can be selected.


[ptype type=page]

This will change the post type to a page. Any post type your site supports can be selected.


[pcomments comments=closed]

This will close the post for comments.


[ppings pings=closed]

This will close the post for pingbacks.


[pstatus status=draft]

This will set the post status as draft. publish, pending, private and future are also supported. If you have a custom status that is also supported.

ptag, ptags

[ptag tag=tag1]
[ptags tags="tag1, tag2"]

This allows you to set the tags on a post. Provide 1 tag or as many as you want separated by commas. You can also use this shortcode multiple times. Using this shortcode will override any default tags.

pcategory, pcategories

[pcategories categories="cat1, cat"]
[pcategory category=cat3]

This allows you to set the categories for a post. Provide one category or as many as you want separated by commas. You can specify the category name, slug or ID. Remember to use quotes if there are spaces in the name.

The categories must exist ahead of time. This also supports custom taxonomies. You can also use this shortcode multiple times. Using this shortcode will override any default category.


[pdate date="Jun 15, 2023"]
[pdate date="2023-05-17 10:00:00 CET"]

This allows you to specify the date for a post. Use this in combination with [pstatus future] to create scheduled posts. Note you have to use quotes if your date contains any spaces.


[pexcerpt]The is my neato excerpt[/pexcerpt]

This will add an excerpt to your post.


[pcustom name=fieldname value="my value"]
[pcustom name=fieldname]
my long value with
carriage returns.
[pcustom name="array{index}" value="array element value"]

This will add a custom field to the post set to the value. You can also use this shortcode multiple times. Note you can also reference an array in the name parameter. Due to WordPress limitations the array notation cannot use square brackets (i.e. don’t do [pcustom name=”array[index]” value=1]) rather use curly braces instead. There is currently no way to delete an array index, nor are multidimensional arrays supported (e.g. [pcustom name=”array{index1}{index2}” value=1] will not work).

Note that many email clients (Gmail & Outlook) will alter URLs so placing a URL in the value element may not work as expected. E.g. [pcustom name=”link” value=””] will get turned into [pcustom name=”link” value=”<a href=””></a>”]


[pterm taxonomy=taxonomyslug term=termslug]
[pterm taxonomy=taxonomyslug term="term1, term2"]

This will add term to the post from the custom taxonomy. Typically you would use this with custom post types that have their own taxonomy. You can use this shortcode multiple times. You can provide multiple terms if you separate them with commas. Note you may need to set the “Force User Login” setting to “Yes” to use custom taxonomies.


[pauthor author=1]
[pauthor author=""]

This will change the author to the indicated WordPress user. You can specify by id, slug, email or login.


[pparent parent=1]
[pparent parent=page-slug]
[pparent parent="page title"] 

This will change the page parent to the indicated page. You can specify the parent by id, slug or title.

Release Notes

1.2.16 released 2021-08-31

  • preplace now moves meta data.

1.2.15 released 2021-08-10

  • Add ability to use preplace with post id or slug in addition to title/subject.

1.2.14 released 2020-09-29

1.2.13 released 2019-12.09

  • Updated the update checker

1.2.12 released 2019-11-27

  • Feature: Add ppassword to add a password to the post.

1.2.11 released 2019-08-03

  • Fix: Logic to find post to replace with preplace

1.2.10 released 2019-08-03

  • Feature: Add preplace to replace/update an existing page.

1.2.9 released 2018-11-17

  • Feature: Add pparent to set parent page

1.2.8 released 2017-12-05

  • Feature: pcustom can now specify the value between the tags rather than as an attribute for more complex values.

1.2.7 released 2017-10-27

  • Fix: Don’t process if previous filter cleared the post.

1.2.6 released 2017-04-12

  • pterm now allows multiple terms to be specified.

1.2.5 released 2017-04-05

  • Fix issue with pdate
  • Add autoupdater

1.2.4 released 2017-02-12

  • Fixed an issue with the new array support with pcustom

1.2.3 released 2017-02-07

  • Add support for array references in pcustom

1.2.2 released 2016-12-06

  • Added pslug

1.2.1 released 2016-07-28

  • Added pimage
  • Added pfeatured
  • Now using official shortcode format. [shortcode param=value]

1.1.7 released 2016-06-01

  • Fixed a bug with pmore

1.1.6 released 2015-12-04

  • Added pauthor

1.1.5 released 2015-11-19

  • Added pnextpage

1.1.4 released 2015-09-18

  • Additional logging for taxonomies

1.1.3 released 2015-09-14

  • Fix multiple categories in a single shortcode
  • Fix initial category/tag detection when there are multiple messages

1.1.2 released 2015-09-10

  • Fix html entity encoding of quoted parameters

1.1.1 released 2015-06-26

  • The first category or tag shortcode removes the default

1.1.0 released 2015-05-20

  • Added pterm

1.0.3 released 2015-05-11

  • Fix where other shortcodes were running

1.0.2 released 2015-05-11

  • Fix bug where multiple categories not getting set

1.0.2 released 2015-04-29

  • Initial release

Category Per User AddOn

The Postie Addon for Category Per User lets you optionally assign each user a default category and/or tags that gets used when Postie receives a message from that user.

User Settings

When editing a user there is an extra section: Postie Settings

You can find this new setting at the bottom of the Edit User page.

If set, the user category will override the Postie default category for email received from this user. You can still override the category by setting the subject line.

Any tags specified here will be merged with the default tags and any specified in the email.

Administrative Settings

Activating the CpU AddOn adds a new settings panel below the Postie menu:


From here you can prevent the user from changing the default category, specify if you want to use categories or a custom taxonomy and specify the fallback logic.

The fallback logic requires a little explanation.

“Only FROM” – this is the default and means that Postie will only use the “from” address to look up the user to find the default category/tags.

“TO then FROM” – this setting will look through the (possibly multiple) “to” addresses and if a valid WordPress user is found then the category specified for that user is used. If a user isn’t found then the “from” user is used.

“CC then TO then FROM” – this setting starts with the (possibly multiple) “cc” addresses and moves on to the “to” then “from” stopping as soon as it finds a valid WordPress user.

“BCC then CC then TO then FROM” – this setting starts with the”bcc” address and moves on to the “cc” addresses then “to” then “from” stopping as soon as it finds a valid WordPress user.

Old Settings

These settings are for CpU versions before 2.0.1 – please do not use these settings use the settings panel above instead. If you have created these constants for a previous version please delete them and use the settings page.

Category Lockdown

You can prevent users from changing their default categories by adding the following line to the wp-config.php file.


Use Taxonomies

You can have Postie use a specific taxonomy rather than the categories by adding the following line to the wp-config.php file.

define('POSTIE_USERCATEGORY_TAXONOMY', 'mytaxonomy');

Multiple Inboxes/Use “TO” Address

Many people want to have their users send emails to various email addresses for different categories. You can accomplish this by having the emails forwarded to a central mailbox that Postie checks and by adding the following line to the wp-config.php file.


Version History

  • 3.0.6 – 2020-04-14 – Update Updater Library
  • 3.0.5 – 2020-03-19 – Fix crashing error
  • 3.0.4 – 2020-03-19 – Support X-Original-To header for BCC
  • 3.0.3 – 2017-03-27 – Fix tag parsing issue
  • 3.0.2 – 2017-03-25 – Remove warning when default tag is blank
  • 3.0.1 – 2017-03-15 – Add tag support, add auto-update support
  • 2.1.2 – 2016-07-27 – Fix taxonomy issue.
  • 2.1.1 – 2016-05-16 – Add compatibility for Postie 1.8.
  • 2.0.1 – 2016-04-21 – Add new settings page for easier configuration. Add fallback logic to work better with user needs.
  • 1.0.7 – 2016-03-18 – Add POSTIE_USERCATEGORY_USETO constant. Set to true to use the “TO” address rather than reply-to or from. Useful if forwarding from another account.
  • 1.0.6 – 2015-12-02 – Add POSTIE_USERCATEGORY_TAXONOMY constant. Set this to a taxonomy to use it rather than category
  • 1.0.5 – 2015-11-17 – Add POSTIE_USERCATEGORY_ADMIN constant. Set to true to prevent users from changing their own default category.
  • 1.0.4 – 2015-09.08 – Allow subject line category to override the user category (requires Postie 1.7.8+)
  • 1.0.3 – 2015.08.24 – Added fallback to use reply-to if author can’t be found
  • 1.0.2 – 2015.07.10 – bug fixes
  • 1.0.1 – 2015.04.17 – bug fixes
  • 1.0.0 – 2015.04.10 – initial release

Clean HTML AddOn

The Clean HTML AddOn takes the HTML embedded in your email and cleans it up and makes sure it is W3C compliant so that it won’t cause any issues with your blog. Saves hours of time fiddling with your posts.


This is optional. If you leave everything blank the AddOn still makes your HTML W3C compliant.

There is a configuration page that allows you to set commonly used settings.


Allowed is the comma separated list of HTML elements you want to allow. By default everything is allowed. If you enter anything in this setting you have to enter all the elements you want to allow. This is very restrictive. Typically you’ll want to use Forbidden Elements.

Forbidden Elements is the comma separated list of HTML elements you want to remove. By default nothing is forbidden. For example if you wanted to prevent images you would enter “img”

Forbidden Attributes is the comma separated list of HTML attributes you want to remove. For example if you change Forbidden Attributes to “style,class” then all style and class attributes will be removed.

Remove Empty will remove any HTML elements that have no content such as <span></span>

Remove Empty Remove Nbsp will remove any HTML elements that have no content other than standard and nonbreaking (nbsp) spaces. E.g. <span>&nbsp; </span>

Programmer Stuff

The Clean HTML AddOn settings page will handle most people’s needs, but if you need something additional read on.

This AddOn has one filter called “postie_htmlcleaner_config” which allows you the opportunity to modify the configuration.

Create a file named filterPostie.php in the wp-content directory and paste the following code into it:

For example this will remove all style and class attributes from the incoming email.

add_filter('postie_htmlcleaner_config', 'my_htmlcleaner_config');

function my_htmlcleaner_config($config)
    $config->set('HTML.ForbiddenAttributes', 'class,style');
    return $config;

This example this will only allow <b>, <u>, <div>, <p> and <a>. The <a> will also allow the href attribute

add_filter('postie_htmlcleaner_config', 'my_htmlcleaner_config');

function my_htmlcleaner_config($config)
    $config->set('HTML.Allowed', 'a[href],b,u,div,p');
    return $config;

Internally this AddOn uses HtmlPurifier. See for all the options.

A user asked if this AddOn will clean up the “junk” MS Word and MS Outlook add. It does clean up the Word/Outlook junk, but I will say that some of what Word adds is valid html (such as class and style attributes) so you need to see what styles your theme provides that conflicts with what comes with the email.For example here is something that was from Outlook and was cleaned, but didn’t display quite the way the user wanted:

<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">BOARD OF DIRECTORS MEETING</span></p>

This is valid html, but if your theme has a “MsoNormal” style defined things might look strange. Note also that a lot of specific styling was specified which might look odd in your theme especially the “font-size: 12pt; font-family: ‘Times New Roman’, serif”