Postie - Version 1.3.3

Version Description

(2009.09.11) = * Fixed problem with double titles * Fixed error in wp-mu * Cronless postie now correctly updates when changing the setting in the postie settings * Small fix in handling of names of attachments (thanks to Teejot) * Fixed delay option (thanks to redbrandonk) * Cronless option value is now correctly deleted when deactivating the cronless postie plugin

Download this release

Release Info

Developer robfelty
Plugin Icon 128x128 Postie
Version 1.3.3
Comparing to
See all releases

Code changes from version 1.3.2 to 1.3.3

Files changed (7) hide show
  1. Revision +2 -2
  2. cronless_postie.php +4 -5
  3. fetchmails.php +104 -0
  4. filterPostie.php +1 -1
  5. postie-functions.php +35 -18
  6. postie.php +3 -3
  7. readme.txt +18 -33
Revision CHANGED
@@ -1,2 +1,2 @@
1
- Revision: 149093
2
- Last Changed Date: 2009-08-25 17:48:05 -0400 (Tue, 25 Aug 2009)
1
+ Revision: 153324
2
+ Last Changed Date: 2009-09-01 00:28:24 -0400 (Tue, 01 Sep 2009)
cronless_postie.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Cronless Postie
4
  Plugin URI: http://blog.robfelty.com/plugins/postie
5
  Description: Checks e-mail periodically using wordpress's built-in scheduling mechanism
6
  Author: Robert Felty
7
- Version: 1.3.2
8
  Author URI: http://blog.robfelty.com
9
  */
10
 
@@ -53,10 +53,9 @@ function postie_cron() {
53
  }
54
  function postie_decron() {
55
  wp_clear_scheduled_hook('check_postie_hook');
56
- //TODO: make sure that clearing the cronless option works right
57
- // $config=GetConfig();
58
- // $config['CRONLESS']='';
59
- //WriteConfig($config);
60
  }
61
 
62
  /* here we add some more options for how often to check for e-mail */
4
  Plugin URI: http://blog.robfelty.com/plugins/postie
5
  Description: Checks e-mail periodically using wordpress's built-in scheduling mechanism
6
  Author: Robert Felty
7
+ Version: 1.3.3
8
  Author URI: http://blog.robfelty.com
9
  */
10
 
53
  }
54
  function postie_decron() {
55
  wp_clear_scheduled_hook('check_postie_hook');
56
+ $config=GetConfig();
57
+ $config['CRONLESS']='';
58
+ WriteConfig($config);
 
59
  }
60
 
61
  /* here we add some more options for how often to check for e-mail */
fetchmails.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //if ($_POST['fetchmails']) {
3
+ include_once (dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR."wp-config.php");
4
+ require_once (dirname(__FILE__). DIRECTORY_SEPARATOR . '../postie/mimedecode.php');
5
+ require_once (dirname(__FILE__). DIRECTORY_SEPARATOR . '../postie/postie-functions.php');
6
+ fetch_mails();
7
+ exit;
8
+ //}
9
+ function init() {
10
+ /* Sets up database table if it doesn't already exist */
11
+ global $wpdb, $aandcpostie_version;
12
+ $table_name=$wpdb->prefix . 'postie_addresses';
13
+ if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
14
+ $sql = "CREATE TABLE " . $table_name . " (
15
+ id mediumint(9) NOT NULL AUTO_INCREMENT,
16
+ server text NOT NULL,
17
+ port smallint(4) DEFAULT '110' NOT NULL,
18
+ email text NOT NULL,
19
+ password VARCHAR(64) NOT NULL,
20
+ protocol text NOT NULL,
21
+ offset text NOT NULL,
22
+ UNIQUE KEY id (id)
23
+ );";
24
+
25
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
26
+ dbDelta($sql);
27
+ $addresses = array(
28
+ 0=> array(
29
+ 'server'=>'something.com',
30
+ 'port' =>'995',
31
+ 'email' => 'username',
32
+ 'password' => 'mypassword',
33
+ 'protocol' => 'pop3-ssl',
34
+ 'offset' => '-5'
35
+ ),
36
+ 1=> array(
37
+ 'server'=>'another.com',
38
+ 'port' =>'993',
39
+ 'email' => 'anotheruser',
40
+ 'password' => 'anotherpassword',
41
+ 'protocol' => 'imap-ssl',
42
+ 'offset' => '-5'
43
+ )
44
+ );
45
+ insert_new_addresses($table_name, $addresses);
46
+ }
47
+ function insert_new_addresses($table_name, $addresses) {
48
+ /* insert addresses into table */
49
+ global $wpdb;
50
+ $fetch_query = 'SELECT id FROM ' . $table_name;
51
+ $existingAddresses=$wpdb->get_col($fetch_query);
52
+ foreach ($addresses as $address) {
53
+ extract($address);
54
+ if (!in_array("$id", $existingAddresses)) {
55
+ $query = "INSERT INTO " . $table_name .
56
+ " (server, port, email, password, protocol, offset) " .
57
+ "VALUES ('$server', $port, '$email', PASSWORD('$password'), '$protocol',
58
+ '$offset')";
59
+ } else {
60
+ $query = "UPDATE $table_name set server='$server', port='$port',
61
+ email='$email', password='$password',
62
+ protocol='$protocol', offset='$offset' WHERE id='$id'";
63
+ }
64
+ $results = $wpdb->query($wpdb->prepare($query));
65
+ }
66
+ }
67
+
68
+ function fetch_mails() {
69
+ global $wpdb;
70
+ /* checks mail from various mailboxes and posts those e-mails */
71
+ //Load up some usefull libraries
72
+
73
+ //Retreive emails
74
+ $fetch_query = 'SELECT * FROM ' . $wpdb->prefix . 'aac_postie';
75
+ $mailboxes=$wpdb->get_results($fetch_query);
76
+
77
+ foreach ($mailboxes as $mailbox) {
78
+ $emails = FetchMail($mailbox->server, $mailbox->port,
79
+ $mailbox->email, $mailbox->password, $mailbox->protocol);
80
+ //loop through messages
81
+ foreach ($emails as $email) {
82
+ //sanity check to see if there is any info in the message
83
+ if ($email == NULL ) {
84
+ print 'Dang, message is empty!';
85
+ continue;
86
+ }
87
+
88
+ $mimeDecodedEmail = DecodeMimeMail($email);
89
+ $from = RemoveExtraCharactersInEmailAddress(
90
+ trim($mimeDecodedEmail->headers["from"]));
91
+
92
+ //Check poster to see if a valid person
93
+ $poster = ValidatePoster($mimeDecodedEmail);
94
+ if (!empty($poster)) {
95
+ DebugEmailOutput($email,$mimeDecodedEmail);
96
+ PostEmail($poster,$mimeDecodedEmail);
97
+ }
98
+ else {
99
+ print("<p>Ignoring email - not authorized.\n");
100
+ }
101
+ } // end looping over messages
102
+ }
103
+ }
104
+ ?>
filterPostie.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Postie Filter
4
  Plugin URI: http://blog.robfelty.com/plugins/postie
5
  Description: Adds my own custom filter to messages posted by postie
6
- Version: 1.3.2
7
  Author: Robert Felty
8
  Author URI: http://blog.robfelty.com/
9
  */
3
  Plugin Name: Postie Filter
4
  Plugin URI: http://blog.robfelty.com/plugins/postie
5
  Description: Adds my own custom filter to messages posted by postie
6
+ Version: 1.3.3
7
  Author: Robert Felty
8
  Author URI: http://blog.robfelty.com/
9
  */
postie-functions.php CHANGED
@@ -5,7 +5,7 @@ $original_mem_limit = ini_get('memory_limit');
5
  ini_set('memory_limit', -1);
6
 
7
  /*
8
- $Id: postie-functions.php 149146 2009-08-26 02:57:42Z robfelty $
9
  */
10
 
11
  /*TODO
@@ -58,8 +58,7 @@ function PostEmail($poster,$mimeDecodedEmail,$config) {
58
  //}
59
  FilterTextParts($mimeDecodedEmail, $config['PREFER_TEXT_TYPE']);
60
  $tmpPost=array('post_title'=> 'tmptitle',
61
- 'post_status' => 'draft',
62
- 'post_content'=>'tmoPost');
63
  /* in order to do attachments correctly, we need to associate the
64
  attachments with a post. So we add the post here, then update it
65
  */
@@ -83,7 +82,7 @@ function PostEmail($poster,$mimeDecodedEmail,$config) {
83
  $mimeDecodedEmail->headers["date"], $config['MESSAGE_ENCODING'], $config['MESSAGE_DEQUOTE']);
84
  //$message_date = $mimeDecodedEmail->headers['date'];
85
  }
86
- list($post_date,$post_date_gmt) = DeterminePostDate($content,
87
  $message_date,$config['TIME_OFFSET']);
88
 
89
  ubb2HTML($content);
@@ -139,8 +138,7 @@ function PostEmail($poster,$mimeDecodedEmail,$config) {
139
  $content = FilterNewLines($content, $config['CONVERTNEWLINE']);
140
 
141
 
142
- $now = date('U');
143
- if (strtotime($post_date)>$now) {
144
  $post_status='future';
145
  } else {
146
  $post_status=$config['POST_STATUS'];
@@ -152,11 +150,11 @@ function PostEmail($poster,$mimeDecodedEmail,$config) {
152
  'user_ID' => $postAuthorDetails['user_ID'],
153
  'email_author' => $postAuthorDetails['email'],
154
  'post_date' => $post_date,
155
- 'post_date_gmt' => $post_date_gmt,
156
  'post_content' => apply_filters('content_save_pre',$content),
157
  'post_title' => $subject,
158
- 'post_modified' => $post_date,
159
- 'post_modified_gmt' => $post_date_gmt,
160
  'ping_status' => get_option('default_ping_status'),
161
  'post_category' => $post_categories,
162
  'tags_input' => $post_tags,
@@ -500,7 +498,7 @@ function PostToDB($details,$isReply, $postToDb=true, $customImageField=false) {
500
  //generate sql for insertion
501
  //$_POST['publish'] = true; //Added to make subscribe2 work - it will only handle it if the global varilable _POST is set
502
  if (!$isReply) {
503
- $post_ID = wp_update_post($details);
504
  } else {
505
  $comment = array(
506
  'comment_author'=>$details['comment_author'],
@@ -553,10 +551,8 @@ function BannedFileName($filename, $bannedFiles) {
553
  function GetContent ($part,&$attachments, $post_id, $config) {
554
  global $charset, $encoding;
555
  /*
556
- if (function_exists(imap_mime_header_decode) && $charset=='') {
557
- $element=imap_mime_header_decode($mimeDecodedEmail->headers['subject']);
558
- $charset = $element->charset;
559
- }
560
  */
561
  $meta_return = NULL;
562
  echo "primary= " . $part->ctype_primary . ", secondary = " . $part->ctype_secondary . "\n";
@@ -1181,7 +1177,7 @@ function DeterminePostDate(&$content, $message_date = NULL, $offset=0) {
1181
  echo "post_date=$post_date\n";
1182
  echo "--------------------DELAY------------\n";
1183
  */
1184
- return(array($post_date,$post_date_gmt));
1185
  }
1186
  /**
1187
  * This function takes the content of the message - looks for a subject at the begining surrounded by # and then removes that from the content
@@ -1237,7 +1233,7 @@ function postie_media_handle_upload($part, $post_id, $post_data = array()) {
1237
  }
1238
  //print_r($part->ctype_parameters);
1239
  if ($part->ctype_parameters['name']=='') {
1240
- if ($part->ctype_parameters['name']!='') {
1241
  $name = $part->d_parameters['filename'];
1242
  } else {
1243
  $name = 'postie-media.'. $part->ctype_secondary;
@@ -1825,6 +1821,7 @@ function GetSubject(&$mimeDecodedEmail,&$content, $config) {
1825
  $encoding='7bit';
1826
  }
1827
  if (function_exists(imap_mime_header_decode)) {
 
1828
  //$elements=imap_mime_header_decode($mimeDecodedEmail->headers['subject']);
1829
  //$text = "=?utf-8?b?w6XDpMO2?= unicode";
1830
  $text=$mimeDecodedEmail->headers['subject'];
@@ -1958,7 +1955,6 @@ function DisplayEmailPost($details) {
1958
  // Report
1959
  print '</pre><p><b>Post Author</b>: ' . $details["post_author"]. '<br />' . "\n";
1960
  print '<b>Date</b>: ' . $details["post_date"] . '<br />' . "\n";
1961
- print '<b>Date GMT</b>: ' . $details["post_date_gmt"] . '<br />' . "\n";
1962
  foreach($details["post_category"] as $category) {
1963
  print '<b>Category</b>: ' . $category . '<br />' . "\n";
1964
  }
@@ -2024,7 +2020,23 @@ function BuildTextArea($label,$id,$current_value,$recommendation = NULL) {
2024
  */
2025
  function SetupConfiguration() {
2026
  if (! function_exists('maybe_create_table')) {
2027
- require_once(ABSPATH . DIRECTORY_SEPARATOR. 'wp-admin'.DIRECTORY_SEPARATOR.'upgrade-functions.php');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2028
  }
2029
  $create_table_sql = "CREATE TABLE ".POSTIE_TABLE ." (
2030
  label text NOT NULL,
@@ -2107,6 +2119,11 @@ function UpdatePostieConfig($data) {
2107
  }
2108
  WriteConfig($config);
2109
  UpdatePostiePermissions($data["ROLE_ACCESS"]);
 
 
 
 
 
2110
  return(1);
2111
  }
2112
  /**
5
  ini_set('memory_limit', -1);
6
 
7
  /*
8
+ $Id: postie-functions.php 153879 2009-09-11 20:41:38Z robfelty $
9
  */
10
 
11
  /*TODO
58
  //}
59
  FilterTextParts($mimeDecodedEmail, $config['PREFER_TEXT_TYPE']);
60
  $tmpPost=array('post_title'=> 'tmptitle',
61
+ 'post_content'=>'tmpPost');
 
62
  /* in order to do attachments correctly, we need to associate the
63
  attachments with a post. So we add the post here, then update it
64
  */
82
  $mimeDecodedEmail->headers["date"], $config['MESSAGE_ENCODING'], $config['MESSAGE_DEQUOTE']);
83
  //$message_date = $mimeDecodedEmail->headers['date'];
84
  }
85
+ list($post_date,$post_date_gmt, $delay) = DeterminePostDate($content,
86
  $message_date,$config['TIME_OFFSET']);
87
 
88
  ubb2HTML($content);
138
  $content = FilterNewLines($content, $config['CONVERTNEWLINE']);
139
 
140
 
141
+ if ($delay!=0 && $config['POST_STATUS']=='publish') {
 
142
  $post_status='future';
143
  } else {
144
  $post_status=$config['POST_STATUS'];
150
  'user_ID' => $postAuthorDetails['user_ID'],
151
  'email_author' => $postAuthorDetails['email'],
152
  'post_date' => $post_date,
153
+ // 'post_date_gmt' => $post_date_gmt,
154
  'post_content' => apply_filters('content_save_pre',$content),
155
  'post_title' => $subject,
156
+ // 'post_modified' => $post_date,
157
+ // 'post_modified_gmt' => $post_date_gmt,
158
  'ping_status' => get_option('default_ping_status'),
159
  'post_category' => $post_categories,
160
  'tags_input' => $post_tags,
498
  //generate sql for insertion
499
  //$_POST['publish'] = true; //Added to make subscribe2 work - it will only handle it if the global varilable _POST is set
500
  if (!$isReply) {
501
+ $post_ID = wp_insert_post($details);
502
  } else {
503
  $comment = array(
504
  'comment_author'=>$details['comment_author'],
551
  function GetContent ($part,&$attachments, $post_id, $config) {
552
  global $charset, $encoding;
553
  /*
554
+ if (!function_exists(imap_mime_header_decode))
555
+ echo "you need to install the php-imap extension for full functionality, including mime header decoding\n";
 
 
556
  */
557
  $meta_return = NULL;
558
  echo "primary= " . $part->ctype_primary . ", secondary = " . $part->ctype_secondary . "\n";
1177
  echo "post_date=$post_date\n";
1178
  echo "--------------------DELAY------------\n";
1179
  */
1180
+ return(array($post_date,$post_date_gmt, $delay));
1181
  }
1182
  /**
1183
  * This function takes the content of the message - looks for a subject at the begining surrounded by # and then removes that from the content
1233
  }
1234
  //print_r($part->ctype_parameters);
1235
  if ($part->ctype_parameters['name']=='') {
1236
+ if ($part->ctype_parameters['filename']!='') {
1237
  $name = $part->d_parameters['filename'];
1238
  } else {
1239
  $name = 'postie-media.'. $part->ctype_secondary;
1821
  $encoding='7bit';
1822
  }
1823
  if (function_exists(imap_mime_header_decode)) {
1824
+ $subject='';
1825
  //$elements=imap_mime_header_decode($mimeDecodedEmail->headers['subject']);
1826
  //$text = "=?utf-8?b?w6XDpMO2?= unicode";
1827
  $text=$mimeDecodedEmail->headers['subject'];
1955
  // Report
1956
  print '</pre><p><b>Post Author</b>: ' . $details["post_author"]. '<br />' . "\n";
1957
  print '<b>Date</b>: ' . $details["post_date"] . '<br />' . "\n";
 
1958
  foreach($details["post_category"] as $category) {
1959
  print '<b>Category</b>: ' . $category . '<br />' . "\n";
1960
  }
2020
  */
2021
  function SetupConfiguration() {
2022
  if (! function_exists('maybe_create_table')) {
2023
+ function maybe_create_table($table_name, $create_ddl) {
2024
+ global $wpdb;
2025
+ foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
2026
+ if ($table == $table_name) {
2027
+ return true;
2028
+ }
2029
+ }
2030
+ //didn't find it try to create it.
2031
+ $wpdb->query($create_ddl);
2032
+ // we cannot directly tell that whether this succeeded!
2033
+ foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
2034
+ if ($table == $table_name) {
2035
+ return true;
2036
+ }
2037
+ }
2038
+ return false;
2039
+ }
2040
  }
2041
  $create_table_sql = "CREATE TABLE ".POSTIE_TABLE ." (
2042
  label text NOT NULL,
2119
  }
2120
  WriteConfig($config);
2121
  UpdatePostiePermissions($data["ROLE_ACCESS"]);
2122
+ // If we are using cronless, we also update the cronless events
2123
+ if ($config['CRONLESS']!='') {
2124
+ postie_decron();
2125
+ postie_cron();
2126
+ }
2127
  return(1);
2128
  }
2129
  /**
postie.php CHANGED
@@ -3,13 +3,13 @@
3
  Plugin Name: Postie
4
  Plugin URI: http://blog.robfelty.com/plugins/postie
5
  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://forum.robfelty.com/forum/postie'>postie forum</a> for support.
6
- Version: 1.3.2
7
  Author: Robert Felty
8
  Author URI: http://blog.robfelty.com/
9
  */
10
 
11
  /*
12
- $Id: postie.php 149755 2009-08-27 22:25:21Z robfelty $
13
  * -= Requests Pending =-
14
  * German Umlats don't work
15
  * Problems under PHP5
@@ -86,7 +86,7 @@ if (is_admin()) {
86
  }
87
  register_activation_hook(__FILE__, 'UpdateArrayConfig');
88
  /* Version info
89
- $Id: postie.php 149755 2009-08-27 22:25:21Z robfelty $
90
  */
91
  function postie_warnings() {
92
  $config=GetConfig();
3
  Plugin Name: Postie
4
  Plugin URI: http://blog.robfelty.com/plugins/postie
5
  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://forum.robfelty.com/forum/postie'>postie forum</a> for support.
6
+ Version: 1.3.3
7
  Author: Robert Felty
8
  Author URI: http://blog.robfelty.com/
9
  */
10
 
11
  /*
12
+ $Id: postie.php 153887 2009-09-11 20:58:35Z robfelty $
13
  * -= Requests Pending =-
14
  * German Umlats don't work
15
  * Problems under PHP5
86
  }
87
  register_activation_hook(__FILE__, 'UpdateArrayConfig');
88
  /* Version info
89
+ $Id: postie.php 153887 2009-09-11 20:58:35Z robfelty $
90
  */
91
  function postie_warnings() {
92
  $config=GetConfig();
readme.txt CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://blog.robfelty.com/plugins/postie
5
  Tags: e-mail
6
  Requires at least: 2.3
7
  Tested up to: 2.8
8
- Stable tag: 1.3.2
9
 
10
  The Postie plugin allows you to blog via e-mail, including many advanced
11
  features not found in wordpress's default post by e-mail feature.
@@ -19,38 +19,13 @@ imap and pop3, with the option for ssl with both. For usage notes, see the
19
 
20
  = What's new? =
21
 
22
- * 1.3.1 (2009.08.24)
23
- * Changed GetContent filter to postie_content
24
- * Added postie_subject filter
25
- * Added database upgrade hook on activation
26
- * Fixed bug where content would be empty if trying to remove signature,
27
- and signature list was emtpy
28
-
29
- * 1.3.0 (2009.08.14)
30
- * Features
31
- * Added mpeg4 to default list of videotypes
32
- * Added support for KOI8-R character set (cyrillic)
33
- * Added support for iso-8859-2 character set (eastern european)
34
- * Added option to include custom icons for attachments
35
- * Added option to send confirmation message to sender
36
- * Enhanced e-mails for unauthorized users
37
- * Added option to send unauthorized e-mail back to sender
38
- * Added option to only allow e-mails from a specified list of smtp
39
- servers
40
- * Added option to use shortcode for embedding videos (works with the
41
- videos plugin http://www.daburna.de/download/videos-plugin.zip
42
- * Better handling of comment authors (thanks to Petter for suggestion)
43
- * Simplified message options (now includes an advanced options section)
44
- * Added filter ability for post content
45
- * Bug fixes
46
- * No longer including wp-config.php
47
- * If tmpdir is not writable, try a different tmpdir
48
- * More subject encoding fixes
49
- * Updated image templates, which were causing problems for cron
50
- * Fixed in text captions
51
- * Fixed SQL problems when updating options
52
- * Fixed name clashes with other plugins
53
- * Fixed custom image field
54
 
55
  == Installation ==
56
  * Either:
@@ -338,6 +313,16 @@ The IMAP extension is known to be installed on the following popular webhosts:
338
 
339
  == CHANGELOG ==
340
 
 
 
 
 
 
 
 
 
 
 
341
  = 1.3.2 (2009.08.27) =
342
  * tags are now always an array, even if no default tags are set
343
  * Subject is showing up again if you do not have the IMAP extension
5
  Tags: e-mail
6
  Requires at least: 2.3
7
  Tested up to: 2.8
8
+ Stable tag: 1.3.3
9
 
10
  The Postie plugin allows you to blog via e-mail, including many advanced
11
  features not found in wordpress's default post by e-mail feature.
19
 
20
  = What's new? =
21
 
22
+ * 1.3.3 (2009.09.11)
23
+ * Fixed problem with double titles
24
+ * Fixed error in wp-mu
25
+ * Cronless postie now correctly updates when changing the setting in the
26
+ postie settings
27
+ * Small fix in handling of names of attachments (thanks to Teejot)
28
+ * Fixed delay option (thanks to redbrandonk)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  == Installation ==
31
  * Either:
313
 
314
  == CHANGELOG ==
315
 
316
+ = 1.3.3 (2009.09.11) =
317
+ * Fixed problem with double titles
318
+ * Fixed error in wp-mu
319
+ * Cronless postie now correctly updates when changing the setting in the
320
+ postie settings
321
+ * Small fix in handling of names of attachments (thanks to Teejot)
322
+ * Fixed delay option (thanks to redbrandonk)
323
+ * Cronless option value is now correctly deleted when deactivating the
324
+ cronless postie plugin
325
+
326
  = 1.3.2 (2009.08.27) =
327
  * tags are now always an array, even if no default tags are set
328
  * Subject is showing up again if you do not have the IMAP extension