Postie - Version 1.4.36

Version Description

(2013.03.07) = * Removed some debugging code from filters and hooks * Fixed bug where the date command was being ignored * Added 'quicktime' as a default type for the video1 template

Download this release

Release Info

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

Code changes from version 1.4.35 to 1.4.36

Revision CHANGED
@@ -1,2 +1,2 @@
1
- Revision: 671918
2
- Last Changed Date: 2013-02-13 13:10:59 -0800 (Wed, 13 Feb 2013)
1
+ Revision: 677681
2
+ Last Changed Date: 2013-03-06 21:55:00 -0800 (Wed, 06 Mar 2013)
docs/Changes.txt CHANGED
@@ -10,6 +10,11 @@ All script, style and body tags are stripped from html emails.
10
  Attachments are now processed in the order they were attached.
11
 
12
  == CHANGELOG ==
 
 
 
 
 
13
  = 1.4.35 (2013.02.22) =
14
  * Consolidated logic for load configuration settings. Fixes bug where new settings were not having their defaults set properly.
15
  * Fixed bug where attachment file name was not being correctly detected.
10
  Attachments are now processed in the order they were attached.
11
 
12
  == CHANGELOG ==
13
+ = 1.4.36 (2013.03.07) =
14
+ * Removed some debugging code from filters and hooks
15
+ * Fixed bug where the date command was being ignored
16
+ * Added 'quicktime' as a default type for the video1 template
17
+
18
  = 1.4.35 (2013.02.22) =
19
  * Consolidated logic for load configuration settings. Fixes bug where new settings were not having their defaults set properly.
20
  * Fixed bug where attachment file name was not being correctly detected.
docs/Postie.txt CHANGED
@@ -6,7 +6,7 @@ Plugin URI: http://PostiePlugin.com/
6
  Tags: e-mail, email
7
  Requires at least: 3.0
8
  Tested up to: 3.5.1
9
- Stable tag: 1.4.35
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
6
  Tags: e-mail, email
7
  Requires at least: 3.0
8
  Tested up to: 3.5.1
9
+ Stable tag: 1.4.36
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
docs/TODO.txt CHANGED
@@ -8,6 +8,8 @@ replace MIME parser
8
  debug assistance
9
  setting for default post type
10
  automatically create category if it doesn't exist. new option to allow this feature?
 
 
11
 
12
  standardize tags
13
  fix postie settings http://alisothegeek.com/2011/01/wordpress-settings-api-tutorial-1/
8
  debug assistance
9
  setting for default post type
10
  automatically create category if it doesn't exist. new option to allow this feature?
11
+ WP MU support
12
+ new command to set post status: published, draft, pending review, private
13
 
14
  standardize tags
15
  fix postie settings http://alisothegeek.com/2011/01/wordpress-settings-api-tutorial-1/
docs/Usage.txt CHANGED
@@ -132,4 +132,3 @@ Note you can only use this feature if your "Preferred Text Type" is set to "plai
132
  if you send an HTML and plain text message
133
  * Automatically confirms that you are installed correctly
134
 
135
- = Extending =
132
  if you send an HTML and plain text message
133
  * Automatically confirms that you are installed correctly
134
 
 
postie-functions.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  /*
4
- $Id: postie-functions.php 671973 2013-02-22 23:06:45Z WayneAllen $
5
  */
6
 
7
  //to turn on debug output add the following line to wp-config.php
@@ -99,8 +99,8 @@ function DebugEcho($v) {
99
  }
100
 
101
  function tag_Date(&$content, $message_date) {
102
-
103
- if (preg_match("/^date:\s?(.*)$/im", $content, $matches)) {
104
  $newdate = strtotime($matches[1]);
105
  if (false !== $newdate) {
106
  $t = date("H:i:s", $newdate);
@@ -113,6 +113,8 @@ function tag_Date(&$content, $message_date) {
113
  $message_date = date($format, $newdate);
114
  $content = trim(str_replace($matches[0], '', $content));
115
  }
 
 
116
  }
117
 
118
  return $message_date;
@@ -129,9 +131,11 @@ function CreatePost($poster, $mimeDecodedEmail, $post_id, &$is_reply, $config) {
129
  "cids" => array(), //holds the cids for HTML email
130
  "image_files" => array() //holds the files for each image
131
  );
132
- EchoInfo("Message Id is :" . htmlentities($mimeDecodedEmail->headers["message-id"]));
133
- if ($fulldebug)
134
- DebugDump($mimeDecodedEmail);
 
 
135
 
136
  filter_PreferedText($mimeDecodedEmail, $prefer_text_type);
137
  if ($fulldebug)
@@ -167,10 +171,10 @@ function CreatePost($poster, $mimeDecodedEmail, $post_id, &$is_reply, $config) {
167
  if (array_key_exists("date", $mimeDecodedEmail->headers) && !empty($mimeDecodedEmail->headers["date"])) {
168
  $cte = "";
169
  $cs = "";
170
- if (array_key_exists('content-transfer-encoding', $mimeDecodedEmail->headers)) {
171
  $cte = $mimeDecodedEmail->headers["content-transfer-encoding"];
172
  }
173
- if (array_key_exists('charset', $mimeDecodedEmail->ctype_parameters)) {
174
  $cs = $mimeDecodedEmail->ctype_parameters["charset"];
175
  }
176
  $message_date = HandleMessageEncoding($cte, $cs, $mimeDecodedEmail->headers["date"], $message_encoding, $message_dequote);
@@ -509,6 +513,7 @@ function getPostAuthorDetails(&$subject, &$content, &$mimeDecodedEmail) {
509
 
510
  // see if subject starts with Fwd:
511
  if (preg_match("/(^Fwd:) (.*)/", $subject, $matches)) {
 
512
  $subject = trim($matches[2]);
513
  if (preg_match("/\nfrom:(.*?)\n/i", $content, $matches)) {
514
  $theAuthor = GetNameFromEmail($matches[1]);
@@ -516,19 +521,20 @@ function getPostAuthorDetails(&$subject, &$content, &$mimeDecodedEmail) {
516
  }
517
  if (preg_match("/\ndate:(.*?)\n/i", $content, $matches)) {
518
  $theDate = $matches[1];
 
519
  $mimeDecodedEmail->headers['date'] = $theDate;
520
  }
521
- }
522
 
523
- // now get rid of forwarding info in the content
524
- $lines = preg_split("/\r\n/", $content);
525
- $newContents = '';
526
- foreach ($lines as $line) {
527
- if (preg_match("/^(from|subject|to|date):.*?/i", $line, $matches) == 0 && preg_match("/^-+\s*forwarded\s*message\s*-+/i", $line, $matches) == 0) {
528
- $newContents.=preg_replace("/\r/", "", $line) . "\n";
 
529
  }
 
530
  }
531
- $content = $newContents;
532
  $theDetails = array(
533
  'content' => "<div class='postmetadata alt'>On $theDate, $theAuthor" .
534
  " posted:</div>",
@@ -538,7 +544,7 @@ function getPostAuthorDetails(&$subject, &$content, &$mimeDecodedEmail) {
538
  'user_ID' => $theID,
539
  'email' => $theEmail
540
  );
541
- return($theDetails);
542
  }
543
 
544
  /* we check whether or not the e-mail is a reply to a previously
@@ -958,10 +964,13 @@ function GetContent($part, &$attachments, $post_id, $poster, $config) {
958
  $cid = "";
959
  if (array_key_exists('content-id', $part->headers)) {
960
  $cid = trim($part->headers["content-id"], "<>");
 
961
  }
962
  if (in_array($part->ctype_secondary, $audiotypes)) {
 
963
  $audioTemplate = $audiotemplate;
964
  } else {
 
965
  $icon = chooseAttachmentIcon($file, $part->ctype_primary, $part->ctype_secondary, $icon_set, $icon_size);
966
  $audioTemplate = '<a href="{FILELINK}">' . $icon . '{FILENAME}</a>';
967
  }
@@ -979,12 +988,17 @@ function GetContent($part, &$attachments, $post_id, $poster, $config) {
979
  $cid = "";
980
  if (array_key_exists('content-id', $part->headers)) {
981
  $cid = trim($part->headers["content-id"], "<>");
 
982
  }
 
983
  if (in_array(strtolower($part->ctype_secondary), $video1types)) {
 
984
  $videoTemplate = $video1template;
985
  } elseif (in_array(strtolower($part->ctype_secondary), $video2types)) {
 
986
  $videoTemplate = $video2template;
987
  } else {
 
988
  $icon = chooseAttachmentIcon($file, $part->ctype_primary, $part->ctype_secondary, $icon_set, $icon_size);
989
  $videoTemplate = '<a href="{FILELINK}">' . $icon . '{FILENAME}</a>';
990
  }
@@ -1135,7 +1149,14 @@ function ValidatePoster(&$mimeDecodedEmail, $config) {
1135
  extract($config);
1136
  global $wpdb;
1137
  $poster = NULL;
1138
- $from = RemoveExtraCharactersInEmailAddress(trim($mimeDecodedEmail->headers["from"]));
 
 
 
 
 
 
 
1139
 
1140
  $resentFrom = "";
1141
  if (array_key_exists('resent-from', $mimeDecodedEmail->headers)) {
@@ -1143,9 +1164,13 @@ function ValidatePoster(&$mimeDecodedEmail, $config) {
1143
  }
1144
 
1145
  //See if the email address is one of the special authorized ones
1146
- EchoInfo("Confirming Access For $from ");
1147
- $sql = 'SELECT id FROM ' . $wpdb->users . ' WHERE user_email=\'' . addslashes($from) . "' LIMIT 1;";
1148
- $user_ID = $wpdb->get_var($sql);
 
 
 
 
1149
  if (!empty($user_ID)) {
1150
  $user = new WP_User($user_ID);
1151
  if ($user->has_cap("post_via_postie")) {
@@ -1594,8 +1619,13 @@ function postie_media_handle_upload($part, $post_id, $poster, $post_data = array
1594
 
1595
  // Save the data
1596
  $id = wp_insert_attachment($attachment, $file, $post_id);
 
1597
  if (!is_wp_error($id)) {
1598
- wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $file));
 
 
 
 
1599
  } else {
1600
  EchoInfo("There was an error adding the attachement: " . $id->get_error_message());
1601
  }
@@ -1682,6 +1712,7 @@ function postie_handle_upload(&$file, $overrides = false, $time = null) {
1682
  // fix filename (remove non-standard characters)
1683
  $file['name'] = preg_replace("/[^\x9\xA\xD\x20-\x7F]/", "", $file['name']);
1684
  $filename = wp_unique_filename($uploads['path'], $file['name'], $unique_filename_callback);
 
1685
 
1686
  // Move the file to the uploads dir
1687
  $new_file = $uploads['path'] . "/$filename";
@@ -2472,7 +2503,7 @@ function config_GetDefaults() {
2472
  'turn_authorization_off' => false,
2473
  'time_offset' => get_option('gmt_offset'),
2474
  'video1template' => $simple_link,
2475
- 'video1types' => array('mp4', 'mpeg4', '3gp', '3gpp', '3gpp2', '3gp2', 'mov', 'mpeg'),
2476
  'video2template' => $simple_link,
2477
  'video2types' => array('x-flv'),
2478
  'video1templates' => $video1Templates,
@@ -2622,7 +2653,7 @@ function config_UpgradeOld() {
2622
 
2623
  //video1
2624
  if (!isset($config["VIDEO1TYPES"]))
2625
- $config['VIDEO1TYPES'] = array('mp4', 'mpeg4', '3gp', '3gpp', '3gpp2', '3gp2', 'mov', 'mpeg');
2626
  if (!isset($config["AUDIOTYPES"]))
2627
  $config['AUDIOTYPES'] = array('m4a', 'mp3', 'ogg', 'wav', 'mpeg');
2628
  if (!isset($config["SELECTED_VIDEO2TEMPLATE"]))
1
  <?php
2
 
3
  /*
4
+ $Id: postie-functions.php 677715 2013-03-07 22:06:16Z WayneAllen $
5
  */
6
 
7
  //to turn on debug output add the following line to wp-config.php
99
  }
100
 
101
  function tag_Date(&$content, $message_date) {
102
+ DebugEcho("tag_Date\n---\n$content\n---");
103
+ if (1 === preg_match("/^date:\s?(.*)$/im", $content, $matches)) {
104
  $newdate = strtotime($matches[1]);
105
  if (false !== $newdate) {
106
  $t = date("H:i:s", $newdate);
113
  $message_date = date($format, $newdate);
114
  $content = trim(str_replace($matches[0], '', $content));
115
  }
116
+ } else {
117
+ DebugEcho("No date found");
118
  }
119
 
120
  return $message_date;
131
  "cids" => array(), //holds the cids for HTML email
132
  "image_files" => array() //holds the files for each image
133
  );
134
+ if (array_key_exists('message-id', $mimeDecodedEmail->headers)) {
135
+ EchoInfo("Message Id is :" . htmlentities($mimeDecodedEmail->headers["message-id"]));
136
+ if ($fulldebug)
137
+ DebugDump($mimeDecodedEmail);
138
+ }
139
 
140
  filter_PreferedText($mimeDecodedEmail, $prefer_text_type);
141
  if ($fulldebug)
171
  if (array_key_exists("date", $mimeDecodedEmail->headers) && !empty($mimeDecodedEmail->headers["date"])) {
172
  $cte = "";
173
  $cs = "";
174
+ if (property_exists($mimeDecodedEmail, 'content-transfer-encoding') && array_key_exists('content-transfer-encoding', $mimeDecodedEmail->headers)) {
175
  $cte = $mimeDecodedEmail->headers["content-transfer-encoding"];
176
  }
177
+ if (property_exists($mimeDecodedEmail, 'ctype_parameters') && array_key_exists('charset', $mimeDecodedEmail->ctype_parameters)) {
178
  $cs = $mimeDecodedEmail->ctype_parameters["charset"];
179
  }
180
  $message_date = HandleMessageEncoding($cte, $cs, $mimeDecodedEmail->headers["date"], $message_encoding, $message_dequote);
513
 
514
  // see if subject starts with Fwd:
515
  if (preg_match("/(^Fwd:) (.*)/", $subject, $matches)) {
516
+ DebugEcho("Fwd: detected");
517
  $subject = trim($matches[2]);
518
  if (preg_match("/\nfrom:(.*?)\n/i", $content, $matches)) {
519
  $theAuthor = GetNameFromEmail($matches[1]);
521
  }
522
  if (preg_match("/\ndate:(.*?)\n/i", $content, $matches)) {
523
  $theDate = $matches[1];
524
+ DebugEcho("date in Fwd: $theDate");
525
  $mimeDecodedEmail->headers['date'] = $theDate;
526
  }
 
527
 
528
+ // now get rid of forwarding info in the content
529
+ $lines = preg_split("/\r\n/", $content);
530
+ $newContents = '';
531
+ foreach ($lines as $line) {
532
+ if (preg_match("/^(from|subject|to|date):.*?/i", $line, $matches) == 0 && preg_match("/^-+\s*forwarded\s*message\s*-+/i", $line, $matches) == 0) {
533
+ $newContents.=preg_replace("/\r/", "", $line) . "\n";
534
+ }
535
  }
536
+ $content = $newContents;
537
  }
 
538
  $theDetails = array(
539
  'content' => "<div class='postmetadata alt'>On $theDate, $theAuthor" .
540
  " posted:</div>",
544
  'user_ID' => $theID,
545
  'email' => $theEmail
546
  );
547
+ return $theDetails;
548
  }
549
 
550
  /* we check whether or not the e-mail is a reply to a previously
964
  $cid = "";
965
  if (array_key_exists('content-id', $part->headers)) {
966
  $cid = trim($part->headers["content-id"], "<>");
967
+ DebugEcho("audio Attachement cid: $cid");
968
  }
969
  if (in_array($part->ctype_secondary, $audiotypes)) {
970
+ DebugEcho("using audio template: $part->ctype_secondary");
971
  $audioTemplate = $audiotemplate;
972
  } else {
973
+ DebugEcho("using default audio template: $part->ctype_secondary");
974
  $icon = chooseAttachmentIcon($file, $part->ctype_primary, $part->ctype_secondary, $icon_set, $icon_size);
975
  $audioTemplate = '<a href="{FILELINK}">' . $icon . '{FILENAME}</a>';
976
  }
988
  $cid = "";
989
  if (array_key_exists('content-id', $part->headers)) {
990
  $cid = trim($part->headers["content-id"], "<>");
991
+ DebugEcho("video Attachement cid: $cid");
992
  }
993
+ //DebugDump($part);
994
  if (in_array(strtolower($part->ctype_secondary), $video1types)) {
995
+ DebugEcho("using video1 template: $part->ctype_secondary");
996
  $videoTemplate = $video1template;
997
  } elseif (in_array(strtolower($part->ctype_secondary), $video2types)) {
998
+ DebugEcho("using video2 template: $part->ctype_secondary");
999
  $videoTemplate = $video2template;
1000
  } else {
1001
+ DebugEcho("using default template: $part->ctype_secondary");
1002
  $icon = chooseAttachmentIcon($file, $part->ctype_primary, $part->ctype_secondary, $icon_set, $icon_size);
1003
  $videoTemplate = '<a href="{FILELINK}">' . $icon . '{FILENAME}</a>';
1004
  }
1149
  extract($config);
1150
  global $wpdb;
1151
  $poster = NULL;
1152
+ $from = "";
1153
+ if (array_key_exists('from', $mimeDecodedEmail->headers)) {
1154
+ $from = RemoveExtraCharactersInEmailAddress(trim($mimeDecodedEmail->headers["from"]));
1155
+ } else {
1156
+ DebugEcho("No 'from' header found");
1157
+ DebugDump($mimeDecodedEmail->headers);
1158
+ }
1159
+
1160
 
1161
  $resentFrom = "";
1162
  if (array_key_exists('resent-from', $mimeDecodedEmail->headers)) {
1164
  }
1165
 
1166
  //See if the email address is one of the special authorized ones
1167
+ if (!empty($from)) {
1168
+ EchoInfo("Confirming Access For $from ");
1169
+ $sql = 'SELECT id FROM ' . $wpdb->users . ' WHERE user_email=\'' . addslashes($from) . "' LIMIT 1;";
1170
+ $user_ID = $wpdb->get_var($sql);
1171
+ } else {
1172
+ $user_ID = "";
1173
+ }
1174
  if (!empty($user_ID)) {
1175
  $user = new WP_User($user_ID);
1176
  if ($user->has_cap("post_via_postie")) {
1619
 
1620
  // Save the data
1621
  $id = wp_insert_attachment($attachment, $file, $post_id);
1622
+ DebugEcho("attachement id: $id");
1623
  if (!is_wp_error($id)) {
1624
+ $amd = wp_generate_attachment_metadata($id, $file);
1625
+ DebugEcho("wp_generate_attachment_metadata");
1626
+ DebugDump($amd);
1627
+ wp_update_attachment_metadata($id, $amd);
1628
+ DebugEcho("wp_update_attachment_metadata complete");
1629
  } else {
1630
  EchoInfo("There was an error adding the attachement: " . $id->get_error_message());
1631
  }
1712
  // fix filename (remove non-standard characters)
1713
  $file['name'] = preg_replace("/[^\x9\xA\xD\x20-\x7F]/", "", $file['name']);
1714
  $filename = wp_unique_filename($uploads['path'], $file['name'], $unique_filename_callback);
1715
+ DebugEcho("wp_unique_filename: $filename");
1716
 
1717
  // Move the file to the uploads dir
1718
  $new_file = $uploads['path'] . "/$filename";
2503
  'turn_authorization_off' => false,
2504
  'time_offset' => get_option('gmt_offset'),
2505
  'video1template' => $simple_link,
2506
+ 'video1types' => array('mp4', 'mpeg4', '3gp', '3gpp', '3gpp2', '3gp2', 'mov', 'mpeg', 'quicktime'),
2507
  'video2template' => $simple_link,
2508
  'video2types' => array('x-flv'),
2509
  'video1templates' => $video1Templates,
2653
 
2654
  //video1
2655
  if (!isset($config["VIDEO1TYPES"]))
2656
+ $config['VIDEO1TYPES'] = array('mp4', 'mpeg4', '3gp', '3gpp', '3gpp2', '3gp2', 'mov', 'mpeg', 'quicktime');
2657
  if (!isset($config["AUDIOTYPES"]))
2658
  $config['AUDIOTYPES'] = array('m4a', 'mp3', 'ogg', 'wav', 'mpeg');
2659
  if (!isset($config["SELECTED_VIDEO2TEMPLATE"]))
postie.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Postie
5
  Plugin URI: http://PostiePlugin.com/
6
  Description: Signifigantly upgrades the posting by mail features of Word Press (See <a href='options-general.php?page=postie/postie.php'>Settings and options</a>) to configure your e-mail settings. See the <a href='http://wordpress.org/extend/plugins/postie/other_notes'>Readme</a> for usage. Visit the <a href='http://wordpress.org/support/plugin/postie'>postie forum</a> for support.
7
- Version: 1.4.35
8
  Author: Wayne Allen
9
  Author URI: http://allens-home.com/
10
  License: GPL2
@@ -27,7 +27,7 @@
27
  */
28
 
29
  /*
30
- $Id: postie.php 671973 2013-02-22 23:06:45Z WayneAllen $
31
  */
32
 
33
  define("POSTIE_ROOT", dirname(__FILE__));
@@ -208,11 +208,9 @@ function postie_cron($interval = false) {
208
  if ($interval == 'manual') {
209
  wp_clear_scheduled_hook('check_postie_hook');
210
  } else {
211
- DebugEcho("Setting $interval cron schedule");
212
  if (false === wp_schedule_event(time(), $interval, 'check_postie_hook')) {
213
- EchoInfo("Failed to set up cron task.");
214
- } else {
215
- EchoInfo("Succeeded in setting up cron task.");
216
  }
217
  }
218
  }
4
  Plugin Name: Postie
5
  Plugin URI: http://PostiePlugin.com/
6
  Description: Signifigantly upgrades the posting by mail features of Word Press (See <a href='options-general.php?page=postie/postie.php'>Settings and options</a>) to configure your e-mail settings. See the <a href='http://wordpress.org/extend/plugins/postie/other_notes'>Readme</a> for usage. Visit the <a href='http://wordpress.org/support/plugin/postie'>postie forum</a> for support.
7
+ Version: 1.4.36
8
  Author: Wayne Allen
9
  Author URI: http://allens-home.com/
10
  License: GPL2
27
  */
28
 
29
  /*
30
+ $Id: postie.php 677715 2013-03-07 22:06:16Z WayneAllen $
31
  */
32
 
33
  define("POSTIE_ROOT", dirname(__FILE__));
208
  if ($interval == 'manual') {
209
  wp_clear_scheduled_hook('check_postie_hook');
210
  } else {
 
211
  if (false === wp_schedule_event(time(), $interval, 'check_postie_hook')) {
212
+ //Do not echo output in filters, it seems to break some installs
213
+ error_log("Postie: Failed to set up cron task.");
 
214
  }
215
  }
216
  }
postieIMAP.php CHANGED
@@ -158,6 +158,7 @@ class PostieIMAP {
158
  * @return string
159
  */
160
  function error() {
 
161
  return(imap_last_error());
162
  }
163
 
158
  * @return string
159
  */
160
  function error() {
161
+ //echo(print_r(imap_errors(), true));
162
  return(imap_last_error());
163
  }
164
 
postie_test.php CHANGED
@@ -72,7 +72,10 @@ $images = array("Test.png", "Test.jpg", "Test.gif");
72
  <?php
73
  if (!$mail_server || !$mail_server_port || !$mail_userid) {
74
  EchoInfo("NO - check server settings");
 
 
75
  }
 
76
  switch (strtolower($config["input_protocol"])) {
77
  case 'imap':
78
  case 'imap-ssl':
72
  <?php
73
  if (!$mail_server || !$mail_server_port || !$mail_userid) {
74
  EchoInfo("NO - check server settings");
75
+ } else {
76
+ DebugEcho("checking");
77
  }
78
+
79
  switch (strtolower($config["input_protocol"])) {
80
  case 'imap':
81
  case 'imap-ssl':
readme.html CHANGED
@@ -253,7 +253,5 @@ php-imap support</li>
253
  if you send an HTML and plain text message</li>
254
  <li>Automatically confirms that you are installed correctly</li>
255
  </ul>
256
-
257
- <h4>Extending</h4>
258
  <hr />
259
 
253
  if you send an HTML and plain text message</li>
254
  <li>Automatically confirms that you are installed correctly</li>
255
  </ul>
 
 
256
  <hr />
257
 
readme.txt CHANGED
@@ -6,7 +6,7 @@ Plugin URI: http://PostiePlugin.com/
6
  Tags: e-mail, email
7
  Requires at least: 3.0
8
  Tested up to: 3.5.1
9
- Stable tag: 1.4.35
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -213,7 +213,6 @@ Note you can only use this feature if your "Preferred Text Type" is set to "plai
213
  if you send an HTML and plain text message
214
  * Automatically confirms that you are installed correctly
215
 
216
- = Extending =
217
  == Frequently Asked Questions ==
218
 
219
  = Postie won't connect to my mailserver. Why Not? =
@@ -427,6 +426,11 @@ All script, style and body tags are stripped from html emails.
427
  Attachments are now processed in the order they were attached.
428
 
429
  == CHANGELOG ==
 
 
 
 
 
430
  = 1.4.35 (2013.02.22) =
431
  * Consolidated logic for load configuration settings. Fixes bug where new settings were not having their defaults set properly.
432
  * Fixed bug where attachment file name was not being correctly detected.
6
  Tags: e-mail, email
7
  Requires at least: 3.0
8
  Tested up to: 3.5.1
9
+ Stable tag: 1.4.36
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
213
  if you send an HTML and plain text message
214
  * Automatically confirms that you are installed correctly
215
 
 
216
  == Frequently Asked Questions ==
217
 
218
  = Postie won't connect to my mailserver. Why Not? =
426
  Attachments are now processed in the order they were attached.
427
 
428
  == CHANGELOG ==
429
+ = 1.4.36 (2013.03.07) =
430
+ * Removed some debugging code from filters and hooks
431
+ * Fixed bug where the date command was being ignored
432
+ * Added 'quicktime' as a default type for the video1 template
433
+
434
  = 1.4.35 (2013.02.22) =
435
  * Consolidated logic for load configuration settings. Fixes bug where new settings were not having their defaults set properly.
436
  * Fixed bug where attachment file name was not being correctly detected.
test/postie-functionsTest.php CHANGED
@@ -553,6 +553,10 @@ class postiefunctionsTest extends PHPUnit_Framework_TestCase {
553
  $c = "date: Dec 31, 2013 14:22";
554
  $this->assertEquals("2013-12-31 14:22:00", tag_Date($c, null));
555
  $this->assertEquals("", $c);
 
 
 
 
556
  }
557
 
558
  function testtag_Excerpt() {
553
  $c = "date: Dec 31, 2013 14:22";
554
  $this->assertEquals("2013-12-31 14:22:00", tag_Date($c, null));
555
  $this->assertEquals("", $c);
556
+
557
+ $c = "stuff\n\ndate: Dec 31, 2013 14:22\n\nmorestuff";
558
+ $this->assertEquals("2013-12-31 14:22:00", tag_Date($c, null));
559
+ $this->assertEquals("stuff\n\n\n\nmorestuff", $c);
560
  }
561
 
562
  function testtag_Excerpt() {