Postie - Version 1.9.2

Version Description

(2017.07.24) = * Fix: Uninitialized variable in Postie::create_post() * Fix: More robust tag detection

Download this release

Release Info

Developer WayneAllen
Plugin Icon 128x128 Postie
Version 1.9.2
Comparing to
See all releases

Code changes from version 1.9.1 to 1.9.2

config_form_image.php CHANGED
@@ -4,7 +4,7 @@
4
  <?php
5
  echo PostieAdmin::boolean_select_html(__("Use First Image as Featured Image", 'postie'), "postie-settings[featured_image]", $featured_image, __("If any images are attached, the first one will be the featured image for the post", 'postie'));
6
  echo PostieAdmin::boolean_select_html(__("Include Featured Image in Post", 'postie'), "postie-settings[include_featured_image]", $include_featured_image, __("Should the featured image be included in the post.", 'postie'));
7
- echo PostieAdmin::boolean_select_html(__("Automatically insert image gallery", 'postie'), "postie-settings[auto_gallery]", $auto_gallery, __("If any images are attached, they will automatically be inserted as a gallery. If the 'Preferred Text Type' is 'HTML' this will add a galery in addition to the images in the email. Not recommended.", 'postie'));
8
  echo PostieAdmin::select_html(__("Gallery Link Type", 'postie'), "postie-settings[auto_gallery_link]", $auto_gallery_link, array('Default', 'Post', 'File', 'None'), "Select the type of link the gallery should use");
9
  echo PostieAdmin::boolean_select_html(__("Image Location", 'postie'), "postie-settings[images_append]", $images_append, __("Location of attachments if using 'plain' format. Before or After content. For 'html' content this will only affect attachments that are not inline.", 'postie'), array('After', 'Before'));
10
  echo PostieAdmin::boolean_select_html(__("Start Image Count At", 'postie'), "postie-settings[start_image_count_at_zero]", $start_image_count_at_zero, __('For use if using "Image Place Holder Tag" below.', 'postie'), array('Start at 0', 'Start at 1'));
4
  <?php
5
  echo PostieAdmin::boolean_select_html(__("Use First Image as Featured Image", 'postie'), "postie-settings[featured_image]", $featured_image, __("If any images are attached, the first one will be the featured image for the post", 'postie'));
6
  echo PostieAdmin::boolean_select_html(__("Include Featured Image in Post", 'postie'), "postie-settings[include_featured_image]", $include_featured_image, __("Should the featured image be included in the post.", 'postie'));
7
+ echo PostieAdmin::boolean_select_html(__("Automatically insert image gallery", 'postie'), "postie-settings[auto_gallery]", $auto_gallery, __("If any images are attached, they will automatically be inserted as a gallery. If the 'Preferred Text Type' is 'HTML' this will add a galery in addition to the images in the email.", 'postie'));
8
  echo PostieAdmin::select_html(__("Gallery Link Type", 'postie'), "postie-settings[auto_gallery_link]", $auto_gallery_link, array('Default', 'Post', 'File', 'None'), "Select the type of link the gallery should use");
9
  echo PostieAdmin::boolean_select_html(__("Image Location", 'postie'), "postie-settings[images_append]", $images_append, __("Location of attachments if using 'plain' format. Before or After content. For 'html' content this will only affect attachments that are not inline.", 'postie'), array('After', 'Before'));
10
  echo PostieAdmin::boolean_select_html(__("Start Image Count At", 'postie'), "postie-settings[start_image_count_at_zero]", $start_image_count_at_zero, __('For use if using "Image Place Holder Tag" below.', 'postie'), array('Start at 0', 'Start at 1'));
config_form_message.php CHANGED
@@ -162,7 +162,7 @@
162
  <p class='description'>UTF-8 <?php _e("should handle ISO-8859-1 as well", 'postie'); ?></p>
163
  </td>
164
  </tr>
165
- <?php echo PostieAdmin::boolean_select_html(__("Drop The Signature From Mail", 'postie'), "postie-settings[drop_signature]", $drop_signature, __("Really only works with 'plain' format.")); ?>
166
- <?php echo PostieAdmin::textarea_html(__("Signature Patterns", 'postie'), "postie-settings[sig_pattern_list]", $sig_pattern_list, __("Really only works with 'plain' format. Put each pattern on a separate line. Patterns are <a href='http://regex101.com/' target='_blank'>regular expressions</a> and are put inside /^{pattern}$/i", 'postie')); ?>
167
  </table>
168
  </div>
162
  <p class='description'>UTF-8 <?php _e("should handle ISO-8859-1 as well", 'postie'); ?></p>
163
  </td>
164
  </tr>
165
+ <?php echo PostieAdmin::boolean_select_html(__("Drop The Signature From Mail", 'postie'), "postie-settings[drop_signature]", $drop_signature); ?>
166
+ <?php echo PostieAdmin::textarea_html(__("Signature Patterns", 'postie'), "postie-settings[sig_pattern_list]", $sig_pattern_list, __("Put each pattern on a separate line. Patterns are <a href='http://regex101.com/' target='_blank'>regular expressions</a> and are put inside '/^{pattern}\s?$/miu'. For HTML content the inner text of each element is evaluated against the pattern. E.g for &lt;p&gt;some test&lt;/p&gt;&lt;p&gt;-- &lt;br&gt;signature&lt;/p&gt; Postie will evaluate 'some text', '-- ' and 'signature' against the pattern(s) and the first time it find a match it will assume that is the signature and remove it and anything below it from the post.", 'postie')); ?>
167
  </table>
168
  </div>
docs/Changes.txt CHANGED
@@ -35,6 +35,10 @@ All script, style and body tags are stripped from html emails.
35
  Attachments are now processed in the order they were attached.
36
 
37
  == CHANGELOG ==
 
 
 
 
38
  = 1.9.1 (2017-06-28) =
39
  * Feature: Add postie_file_added_pre action
40
  * Fix: improvements to tag detection
35
  Attachments are now processed in the order they were attached.
36
 
37
  == CHANGELOG ==
38
+ = 1.9.2 (2017.07.24) =
39
+ * Fix: Uninitialized variable in Postie::create_post()
40
+ * Fix: More robust tag detection
41
+
42
  = 1.9.1 (2017-06-28) =
43
  * Feature: Add postie_file_added_pre action
44
  * Fix: improvements to tag detection
docs/Postie.txt CHANGED
@@ -6,7 +6,7 @@ Plugin URI: http://PostiePlugin.com/
6
  Tags: e-mail, email, post-by-email
7
  Requires at least: 3.3.0
8
  Tested up to: 4.8
9
- Stable tag: 1.9.1
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
6
  Tags: e-mail, email, post-by-email
7
  Requires at least: 3.3.0
8
  Tested up to: 4.8
9
+ Stable tag: 1.9.2
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
lib/fMailbox.php CHANGED
@@ -304,6 +304,13 @@ class fMailbox {
304
  $is_text = $structure['type'] == 'text' && $structure['subtype'] == 'plain';
305
  $is_html = $structure['type'] == 'text' && $structure['subtype'] == 'html';
306
 
 
 
 
 
 
 
 
307
  // If the part doesn't have a disposition and is not the default text or html, set the disposition to inline
308
  if (!$has_disposition && ((!$is_text || !empty($info['text'])) && (!$is_html || !empty($info['html'])))) {
309
  $is_web_image = $structure['type'] == 'image' && in_array($structure['subtype'], array('gif', 'png', 'jpeg', 'pjpeg'));
@@ -319,9 +326,7 @@ class fMailbox {
319
  // This automatically handles primary content that has a content-disposition header on it
320
  if ($structure['disposition'] == 'inline' && $filename === '') {
321
  DebugEcho("handlePart: inline un-named");
322
- if (!isset($info['text'])) {
323
- $info['text'] = '';
324
- }
325
  if ($is_text) {
326
  if (empty($info['text'])) {
327
  $info['text'] = $content;
304
  $is_text = $structure['type'] == 'text' && $structure['subtype'] == 'plain';
305
  $is_html = $structure['type'] == 'text' && $structure['subtype'] == 'html';
306
 
307
+ if (!isset($info['text'])) {
308
+ $info['text'] = '';
309
+ }
310
+ if (!isset($info['html'])) {
311
+ $info['html'] = '';
312
+ }
313
+
314
  // If the part doesn't have a disposition and is not the default text or html, set the disposition to inline
315
  if (!$has_disposition && ((!$is_text || !empty($info['text'])) && (!$is_html || !empty($info['html'])))) {
316
  $is_web_image = $structure['type'] == 'image' && in_array($structure['subtype'], array('gif', 'png', 'jpeg', 'pjpeg'));
326
  // This automatically handles primary content that has a content-disposition header on it
327
  if ($structure['disposition'] == 'inline' && $filename === '') {
328
  DebugEcho("handlePart: inline un-named");
329
+
 
 
330
  if ($is_text) {
331
  if (empty($info['text'])) {
332
  $info['text'] = $content;
postie-tags.php CHANGED
@@ -91,7 +91,7 @@ function tag_AllowCommentsOnPost(&$content) {
91
 
92
  foreach (postie_content_lines($content) as $line) {
93
  $matches = array();
94
- if (preg_match("/^comments:([0|1|2])/iu", $line, $matches)) {
95
  $content = preg_replace("/comments:$matches[1]/i", "", $content);
96
  if ($matches[1] == '1') {
97
  $comments_allowed = 'open';
@@ -111,7 +111,7 @@ function tag_Status(&$content, $currentstatus) {
111
 
112
  foreach (postie_content_lines($content) as $lines) {
113
  $matches = array();
114
- if (preg_match("/^status:\s*(draft|publish|pending|private|future)/iu", $lines, $matches)) {
115
  DebugEcho("tag_Status: found status $matches[1]");
116
  DebugDump($matches);
117
  $content = preg_replace("/$matches[0]/i", "", $content);
@@ -130,7 +130,7 @@ function tag_Delay(&$content, $message_date, $config) {
130
 
131
  foreach (postie_content_lines($content) as $line) {
132
  $matches = array();
133
- if (preg_match("/^delay:(-?[0-9dhm]+)/iu", $line, $matches) && trim($matches[1])) {
134
  DebugEcho("tag_Delay: found delay: " . $matches[1]);
135
  $days = 0;
136
  $hours = 0;
@@ -249,7 +249,7 @@ function tag_Subject($content, $defaultTitle) {
249
  function tag_Excerpt(&$content, $config) {
250
  $post_excerpt = '';
251
  $matches = array();
252
- if (preg_match('/:excerptstart ?(.*):excerptend/is', $content, $matches)) {
253
  $content = str_replace($matches[0], "", $content);
254
  $post_excerpt = $matches[1];
255
  DebugEcho("excerpt found: $post_excerpt");
@@ -394,7 +394,7 @@ function tag_Date(&$content, $message_date) {
394
  foreach (postie_content_lines($content) as $e) {
395
  //DebugEcho("tag_Date: " . $e);
396
  $matches = array();
397
- if (1 === preg_match("/^date:\s?(.*)$/imu", $e, $matches)) {
398
  $possibledate = trim($matches[1]);
399
  DebugEcho("tag_Date: found date tag $matches[1]");
400
  $newdate = strtotime($possibledate);
@@ -424,7 +424,7 @@ function tag_Tags(&$content, $defaultTags) {
424
  $post_tags = array();
425
  foreach (postie_content_lines($content) as $lines) {
426
  $matches = array();
427
- if (preg_match('/^tags:\s?(.*)/iu', $lines, $matches)) {
428
  if (!empty($matches[1])) {
429
  DebugEcho("Found tags: $matches[1]");
430
  $content = str_replace($matches[0], "", $content);
91
 
92
  foreach (postie_content_lines($content) as $line) {
93
  $matches = array();
94
+ if (preg_match("/^\s*comments:\s*([0|1|2])/imu", $line, $matches)) {
95
  $content = preg_replace("/comments:$matches[1]/i", "", $content);
96
  if ($matches[1] == '1') {
97
  $comments_allowed = 'open';
111
 
112
  foreach (postie_content_lines($content) as $lines) {
113
  $matches = array();
114
+ if (preg_match("/^\s*status:\s*(draft|publish|pending|private|future)/imu", $lines, $matches)) {
115
  DebugEcho("tag_Status: found status $matches[1]");
116
  DebugDump($matches);
117
  $content = preg_replace("/$matches[0]/i", "", $content);
130
 
131
  foreach (postie_content_lines($content) as $line) {
132
  $matches = array();
133
+ if (preg_match("/^\s*delay:\s*(-?[0-9dhm]+)/imu", $line, $matches) && trim($matches[1])) {
134
  DebugEcho("tag_Delay: found delay: " . $matches[1]);
135
  $days = 0;
136
  $hours = 0;
249
  function tag_Excerpt(&$content, $config) {
250
  $post_excerpt = '';
251
  $matches = array();
252
+ if (preg_match('/\s*:excerptstart ?(.*):excerptend/imus', $content, $matches)) {
253
  $content = str_replace($matches[0], "", $content);
254
  $post_excerpt = $matches[1];
255
  DebugEcho("excerpt found: $post_excerpt");
394
  foreach (postie_content_lines($content) as $e) {
395
  //DebugEcho("tag_Date: " . $e);
396
  $matches = array();
397
+ if (1 === preg_match("/^\s*date:(.*)$/imu", $e, $matches)) {
398
  $possibledate = trim($matches[1]);
399
  DebugEcho("tag_Date: found date tag $matches[1]");
400
  $newdate = strtotime($possibledate);
424
  $post_tags = array();
425
  foreach (postie_content_lines($content) as $lines) {
426
  $matches = array();
427
+ if (preg_match('/^\s*tags:\s*(.*)/imu', $lines, $matches)) {
428
  if (!empty($matches[1])) {
429
  DebugEcho("Found tags: $matches[1]");
430
  $content = str_replace($matches[0], "", $content);
postie.class.php CHANGED
@@ -261,68 +261,73 @@ class Postie {
261
  DebugEcho("parseTemplate: before '$template'");
262
 
263
  $attachment = get_post($fileid);
264
- $uploadDir = wp_upload_dir();
265
- $fileName = basename($attachment->guid);
266
- $fileType = pathinfo($fileName, PATHINFO_EXTENSION);
267
- $absFileName = $uploadDir['path'] . '/' . $fileName;
268
- $relFileName = str_replace(ABSPATH, '', $absFileName);
269
- $fileLink = wp_get_attachment_url($fileid);
270
- $pageLink = get_attachment_link($fileid);
271
-
272
- $template = str_replace('{TITLE}', $attachment->post_title, $template);
273
- $template = str_replace('{ID}', $fileid, $template);
274
-
275
- if ($type == 'image') {
276
- $widths = array();
277
- $heights = array();
278
- $img_urls = array();
279
-
280
- $this->show_filters_for('image_downsize'); //possible overrides for image_downsize()
281
-
282
- /*
283
- * Possible enhancement: support all sizes returned by get_intermediate_image_sizes()
284
- */
285
- $sizes = array('thumbnail', 'medium', 'large');
286
- for ($i = 0; $i < count($sizes); $i++) {
287
- $iinfo = image_downsize($fileid, $sizes[$i]);
288
- if (false !== $iinfo) {
289
- $img_urls[$i] = $iinfo[0];
290
- $widths[$i] = $iinfo[1];
291
- $heights[$i] = $iinfo[2];
 
 
292
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  }
294
- DebugEcho('parseTemplate: Sources');
295
- DebugDump($img_urls);
296
- DebugEcho('parseTemplate: Heights');
297
- DebugDump($heights);
298
- DebugEcho('parseTemplate: Widths');
299
- DebugDump($widths);
300
-
301
- $template = str_replace('{THUMBNAIL}', $img_urls[0], $template);
302
- $template = str_replace('{THUMB}', $img_urls[0], $template);
303
- $template = str_replace('{MEDIUM}', $img_urls[1], $template);
304
- $template = str_replace('{LARGE}', $img_urls[2], $template);
305
- $template = str_replace('{THUMBWIDTH}', $widths[0] . 'px', $template);
306
- $template = str_replace('{THUMBHEIGHT}', $heights[0] . 'px', $template);
307
- $template = str_replace('{MEDIUMWIDTH}', $widths[1] . 'px', $template);
308
- $template = str_replace('{MEDIUMHEIGHT}', $heights[1] . 'px', $template);
309
- $template = str_replace('{LARGEWIDTH}', $widths[2] . 'px', $template);
310
- $template = str_replace('{LARGEHEIGHT}', $heights[2] . 'px', $template);
311
- }
312
-
313
- $template = str_replace('{FULL}', $fileLink, $template);
314
- $template = str_replace('{FILELINK}', $fileLink, $template);
315
- $template = str_replace('{FILETYPE}', $fileType, $template);
316
- $template = str_replace('{PAGELINK}', $pageLink, $template);
317
- $template = str_replace('{FILENAME}', $orig_filename, $template);
318
- $template = str_replace('{IMAGE}', $fileLink, $template);
319
- $template = str_replace('{URL}', $fileLink, $template);
320
- $template = str_replace('{RELFILENAME}', $relFileName, $template);
321
- $template = str_replace('{ICON}', $icon, $template);
322
- $template = str_replace('{FILEID}', $fileid, $template);
323
-
324
- DebugEcho("parseTemplate: after: '$template<br />'");
325
- return $template . '<br />';
326
  }
327
 
328
  function show_filters_for($hook = '') {
@@ -390,6 +395,8 @@ class Postie {
390
  $attachment['mimetype'] = "$mimetype_primary/$mimetype_secondary";
391
  DebugEcho("save_attachment: mimetype $mimetype_primary/$mimetype_secondary");
392
 
 
 
393
  switch ($mimetype_primary) {
394
  case 'text':
395
  DebugEcho("save_attachment: ctype_primary: text");
@@ -536,10 +543,10 @@ class Postie {
536
  DebugEcho("doing postie_file_added");
537
  do_action('postie_file_added', $post_id, $id, $file_array);
538
  } else {
539
- EchoError("There was an error adding the attachement: " . $id->get_error_message());
540
  DebugDump($id->get_error_messages());
541
  DebugDump($id->get_error_data());
542
- $this->notify_error("There was an error adding the attachement: " . $attachment['wp_filename'], $id->get_error_message());
543
  }
544
 
545
  return $id;
@@ -644,6 +651,7 @@ class Postie {
644
  }
645
 
646
  $message_date = NULL;
 
647
  if (array_key_exists("date", $mimeDecodedEmail['headers']) && !empty($mimeDecodedEmail['headers']['date'])) {
648
  DebugEcho("date header: {$mimeDecodedEmail['headers']['date']}");
649
  if ($config['ignore_email_date']) {
261
  DebugEcho("parseTemplate: before '$template'");
262
 
263
  $attachment = get_post($fileid);
264
+ if (!empty($attachment)) {
265
+ $uploadDir = wp_upload_dir();
266
+ $fileName = basename($attachment->guid);
267
+ $fileType = pathinfo($fileName, PATHINFO_EXTENSION);
268
+ $absFileName = $uploadDir['path'] . '/' . $fileName;
269
+ $relFileName = str_replace(ABSPATH, '', $absFileName);
270
+ $fileLink = wp_get_attachment_url($fileid);
271
+ $pageLink = get_attachment_link($fileid);
272
+
273
+ $template = str_replace('{TITLE}', $attachment->post_title, $template);
274
+ $template = str_replace('{ID}', $fileid, $template);
275
+
276
+ if ($type == 'image') {
277
+ $widths = array();
278
+ $heights = array();
279
+ $img_urls = array();
280
+
281
+ $this->show_filters_for('image_downsize'); //possible overrides for image_downsize()
282
+
283
+ /*
284
+ * Possible enhancement: support all sizes returned by get_intermediate_image_sizes()
285
+ */
286
+ $sizes = array('thumbnail', 'medium', 'large');
287
+ for ($i = 0; $i < count($sizes); $i++) {
288
+ $iinfo = image_downsize($fileid, $sizes[$i]);
289
+ if (false !== $iinfo) {
290
+ $img_urls[$i] = $iinfo[0];
291
+ $widths[$i] = $iinfo[1];
292
+ $heights[$i] = $iinfo[2];
293
+ }
294
  }
295
+ DebugEcho('parseTemplate: Sources');
296
+ DebugDump($img_urls);
297
+ DebugEcho('parseTemplate: Heights');
298
+ DebugDump($heights);
299
+ DebugEcho('parseTemplate: Widths');
300
+ DebugDump($widths);
301
+
302
+ $template = str_replace('{THUMBNAIL}', $img_urls[0], $template);
303
+ $template = str_replace('{THUMB}', $img_urls[0], $template);
304
+ $template = str_replace('{MEDIUM}', $img_urls[1], $template);
305
+ $template = str_replace('{LARGE}', $img_urls[2], $template);
306
+ $template = str_replace('{THUMBWIDTH}', $widths[0] . 'px', $template);
307
+ $template = str_replace('{THUMBHEIGHT}', $heights[0] . 'px', $template);
308
+ $template = str_replace('{MEDIUMWIDTH}', $widths[1] . 'px', $template);
309
+ $template = str_replace('{MEDIUMHEIGHT}', $heights[1] . 'px', $template);
310
+ $template = str_replace('{LARGEWIDTH}', $widths[2] . 'px', $template);
311
+ $template = str_replace('{LARGEHEIGHT}', $heights[2] . 'px', $template);
312
  }
313
+
314
+ $template = str_replace('{FULL}', $fileLink, $template);
315
+ $template = str_replace('{FILELINK}', $fileLink, $template);
316
+ $template = str_replace('{FILETYPE}', $fileType, $template);
317
+ $template = str_replace('{PAGELINK}', $pageLink, $template);
318
+ $template = str_replace('{FILENAME}', $orig_filename, $template);
319
+ $template = str_replace('{IMAGE}', $fileLink, $template);
320
+ $template = str_replace('{URL}', $fileLink, $template);
321
+ $template = str_replace('{RELFILENAME}', $relFileName, $template);
322
+ $template = str_replace('{ICON}', $icon, $template);
323
+ $template = str_replace('{FILEID}', $fileid, $template);
324
+
325
+ DebugEcho("parseTemplate: after: '$template<br />'");
326
+ return $template . '<br />';
327
+ } else {
328
+ EchoError("parseTemplate: couldn't get attachment $fileid");
329
+ return '';
330
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  }
332
 
333
  function show_filters_for($hook = '') {
395
  $attachment['mimetype'] = "$mimetype_primary/$mimetype_secondary";
396
  DebugEcho("save_attachment: mimetype $mimetype_primary/$mimetype_secondary");
397
 
398
+ $attachment['wp_id'] = 0;
399
+
400
  switch ($mimetype_primary) {
401
  case 'text':
402
  DebugEcho("save_attachment: ctype_primary: text");
543
  DebugEcho("doing postie_file_added");
544
  do_action('postie_file_added', $post_id, $id, $file_array);
545
  } else {
546
+ EchoError("There was an error adding the attachment: " . $id->get_error_message());
547
  DebugDump($id->get_error_messages());
548
  DebugDump($id->get_error_data());
549
+ $this->notify_error("There was an error adding the attachment: " . $attachment['wp_filename'], $id->get_error_message());
550
  }
551
 
552
  return $id;
651
  }
652
 
653
  $message_date = NULL;
654
+ $delay = 0;
655
  if (array_key_exists("date", $mimeDecodedEmail['headers']) && !empty($mimeDecodedEmail['headers']['date'])) {
656
  DebugEcho("date header: {$mimeDecodedEmail['headers']['date']}");
657
  if ($config['ignore_email_date']) {
postie.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Postie
5
  Plugin URI: http://PostiePlugin.com/
6
  Description: Create posts via email. Significantly upgrades the Post by Email features of WordPress.
7
- Version: 1.9.1
8
  Author: Wayne Allen
9
  Author URI: http://PostiePlugin.com/
10
  License: GPL3
@@ -28,14 +28,14 @@
28
  */
29
 
30
  /*
31
- $Id: postie.php 1684501 2017-06-23 19:59:20Z WayneAllen $
32
  */
33
 
34
  if (!defined('WPINC')) {
35
  die; // Exit if accessed directly
36
  }
37
 
38
- define('POSTIE_VERSION', '1.9.1');
39
  define('POSTIE_ROOT', dirname(__FILE__));
40
  define('POSTIE_URL', WP_PLUGIN_URL . '/' . basename(dirname(__FILE__)));
41
 
4
  Plugin Name: Postie
5
  Plugin URI: http://PostiePlugin.com/
6
  Description: Create posts via email. Significantly upgrades the Post by Email features of WordPress.
7
+ Version: 1.9.2
8
  Author: Wayne Allen
9
  Author URI: http://PostiePlugin.com/
10
  License: GPL3
28
  */
29
 
30
  /*
31
+ $Id: postie.php 1702006 2017-07-24 23:03:24Z WayneAllen $
32
  */
33
 
34
  if (!defined('WPINC')) {
35
  die; // Exit if accessed directly
36
  }
37
 
38
+ define('POSTIE_VERSION', '1.9.2');
39
  define('POSTIE_ROOT', dirname(__FILE__));
40
  define('POSTIE_URL', WP_PLUGIN_URL . '/' . basename(dirname(__FILE__)));
41
 
readme.txt CHANGED
@@ -6,7 +6,7 @@ Plugin URI: http://PostiePlugin.com/
6
  Tags: e-mail, email, post-by-email
7
  Requires at least: 3.3.0
8
  Tested up to: 4.8
9
- Stable tag: 1.9.1
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -242,6 +242,10 @@ All script, style and body tags are stripped from html emails.
242
  Attachments are now processed in the order they were attached.
243
 
244
  == CHANGELOG ==
 
 
 
 
245
  = 1.9.1 (2017-06-28) =
246
  * Feature: Add postie_file_added_pre action
247
  * Fix: improvements to tag detection
6
  Tags: e-mail, email, post-by-email
7
  Requires at least: 3.3.0
8
  Tested up to: 4.8
9
+ Stable tag: 1.9.2
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
242
  Attachments are now processed in the order they were attached.
243
 
244
  == CHANGELOG ==
245
+ = 1.9.2 (2017.07.24) =
246
+ * Fix: Uninitialized variable in Postie::create_post()
247
+ * Fix: More robust tag detection
248
+
249
  = 1.9.1 (2017-06-28) =
250
  * Feature: Add postie_file_added_pre action
251
  * Fix: improvements to tag detection