> I've been trying to find a way to have the NewMail plugin ignore the
> 'Junk' folder when checking for mail, but I can't seem to find a way to do
> this.
>
> I'm curious, have any of you come up with a good way to do this? I receive
> 100 - 200 pieces per day which are filtered (via procmail) into a Junk
> folder, and thusly I'd like NewMail just to ignore it.
>
> Or, is there already a way to do it and in my searching and poking around
> I've simply failed to come across it?

See attached patch from 1.5.2cvs.

It can be applied with 'patch -p 0 <newmail-1.5.1.diff' command in newmail
plugin directory.

Warning. Patch adds new strings and these strings will be displayed in
English, if translations are not updated.

Updated Newmail plugin can monitor folder only if folder status is
retrieved in folder preferences. If folder preferences are set to 'Only
INBOX', newmail plugin will display only INBOX status even when you set
plugin to monitor all folders.

-- 
Tomas
? changes.diff
Index: functions.php
===================================================================
RCS file: /cvsroot/squirrelmail/squirrelmail/plugins/newmail/functions.php,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- functions.php       10 Feb 2006 23:38:42 -0000      1.11
+++ functions.php       25 Feb 2006 08:24:47 -0000      1.12
@@ -7,7 +7,7 @@
  *
  * @copyright &copy; 2001-2006 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @version $Id: functions.php,v 1.11 2006/02/10 23:38:42 stekkel Exp $
+ * @version $Id: functions.php,v 1.12 2006/02/25 08:24:47 tokul Exp $
  * @package plugins
  * @subpackage newmail
  * @todo add midi support
@@ -17,9 +17,9 @@
 if (! defined('SM_PATH')) define('SM_PATH','../../');
 
 /**
- * sqm_baseuri() function for setups that don't load it by default
+ * SMPREF_UNSEEN_* constants
  */
-include_once(SM_PATH . 'functions/display_messages.php');
+include_once(SM_PATH . 'functions/constants.php');
 
 /** file type defines */
 define('SM_NEWMAIL_FILETYPE_WAV',2);
@@ -93,6 +93,11 @@
         setPref($data_dir,$username,'newmail_popup_width',$popup_width);
         setPref($data_dir,$username,'newmail_popup_height',$popup_height);
 
+        if (sqgetGlobalVar('newmail_unseen_notify', $newmail_unseen_notify, 
SQ_POST)) {
+            $newmail_unseen_notify = (int) $newmail_unseen_notify;
+            
setPref($data_dir,$username,'newmail_unseen_notify',$newmail_unseen_notify);
+        }
+
         if( sqgetGlobalVar('media_sel', $media_sel, SQ_POST) &&
             $media_sel == '(none)' ) {
             removePref($data_dir,$username,'newmail_media');
@@ -140,6 +145,7 @@
     global $newmail_recent, $newmail_changetitle;
     global $newmail_userfile_type, $newmail_userfile_name;
     global $newmail_popup_width, $newmail_popup_height;
+    global $newmail_unseen_notify;
 
     $newmail_recent = getPref($data_dir,$username,'newmail_recent');
     $newmail_media_enable = getPref($data_dir,$username,'newmail_enable');
@@ -155,6 +161,8 @@
 
     $newmail_userfile_type = getPref($data_dir, $username, 
'newmail_userfile_type');
     $newmail_userfile_name = 
getPref($data_dir,$username,'newmail_userfile_name','');
+
+    $newmail_unseen_notify = 
getPref($data_dir,$username,'newmail_unseen_notify',0);
 }
 
 /**
@@ -173,24 +181,34 @@
 /* Receive the status of the folder and do something with it */
 function newmail_folder_status($statusarr) {
     global 
$newmail_media_enable,$newmail_popup,$newmail_changetitle,$trash_folder,
-           $sent_folder,$totalNewArr,$unseen_notify, $newmail_recent;
+           $sent_folder,$totalNewArr, $newmail_unseen_notify, $unseen_notify, 
$newmail_recent;
 
-    //echo "GOT HOOK<br><pre>";
-    //var_dump($statusarr);
-    //echo "</pre><br>\n";
+    /* if $newmail_unseen_notify is set to zero, plugin follows $unseen_notify 
*/
+    if ($newmail_unseen_notify == 0)
+        $newmail_unseen_notify = $unseen_notify;
 
     $mailbox=$statusarr['MAILBOX'];
 
-    if ($newmail_media_enable == 'on' ||
+    if (($newmail_media_enable == 'on' ||
         $newmail_popup == 'on' ||
-        $newmail_changetitle == 'on') {
+        $newmail_changetitle == 'on') &&
+        /**
+         * make sure that $newmail_unseen_notify is set to supported value, 
+         * currently (1.5.2cvs) SMPREF_UNSEEN_NORMAL has highest integer value 
+         * in SMPREF_UNSEEN constants
+         */
+        ($newmail_unseen_notify > SMPREF_UNSEEN_NONE && $newmail_unseen_notify 
<= SMPREF_UNSEEN_NORMAL)) {
 
         // Skip folders for Sent and Trash
+        // TODO: make this optional
         if ($statusarr['MAILBOX'] == $sent_folder || $statusarr['MAILBOX'] == 
$trash_folder) {
             return 0;
         }
 
-        if ((($mailbox == 'INBOX') && ($unseen_notify == 2)) || 
($unseen_notify == 3)) {
+        if ((($mailbox == 'INBOX') && ($newmail_unseen_notify == 
SMPREF_UNSEEN_INBOX)) ||
+            ($newmail_unseen_notify == SMPREF_UNSEEN_SPECIAL && 
isSpecialMailbox($mailbox)) ||
+            ($newmail_unseen_notify == SMPREF_UNSEEN_NORMAL && ! 
isSpecialMailbox($mailbox)) ||
+            ($newmail_unseen_notify == SMPREF_UNSEEN_ALL)) {
             if (($newmail_recent == 'on') && (!empty($statusarr['RECENT']))) {
                 $totalNewArr[$mailbox] = $statusarr['RECENT'];
             } elseif ($newmail_recent != 'on' && !empty($statusarr['UNSEEN'])) 
{
Index: newmail.php
===================================================================
RCS file: /cvsroot/squirrelmail/squirrelmail/plugins/newmail/newmail.php,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- newmail.php 5 Feb 2006 11:32:33 -0000       1.25
+++ newmail.php 22 Feb 2006 20:08:53 -0000      1.26
@@ -7,7 +7,7 @@
  *
  * @copyright &copy; 1999-2006 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @version $Id: newmail.php,v 1.25 2006/02/05 11:32:33 jervfors Exp $
+ * @version $Id: newmail.php,v 1.26 2006/02/22 20:08:53 jervfors Exp $
  * @package plugins
  * @subpackage newmail
  */
@@ -27,7 +27,8 @@
         '<div style="text-align: center;">'. "\n" .
         html_tag( 'table', "\n" .
             html_tag( 'tr', "\n" .
-                html_tag( 'td', '<b>' . _("SquirrelMail Notice:") . '</b>', 
'center', $color[0] )
+                // i18n: %s inserts the organisation name (typically 
SquirrelMail)
+                html_tag( 'td', '<b>' . sprintf(_("%s notice:"), $org_name) . 
'</b>', 'center', $color[0] )
             ) .
             html_tag( 'tr', "\n" .
                 html_tag( 'td',
Index: newmail_opt.php
===================================================================
RCS file: /cvsroot/squirrelmail/squirrelmail/plugins/newmail/newmail_opt.php,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- newmail_opt.php     12 Feb 2006 09:15:52 -0000      1.41
+++ newmail_opt.php     25 Feb 2006 08:24:47 -0000      1.42
@@ -7,7 +7,7 @@
  *
  * @copyright &copy; 1999-2006 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @version $Id: newmail_opt.php,v 1.41 2006/02/12 09:15:52 tokul Exp $
+ * @version $Id: newmail_opt.php,v 1.42 2006/02/25 08:24:47 tokul Exp $
  * @package plugins
  * @subpackage newmail
  */
@@ -17,8 +17,8 @@
 
 /* SquirrelMail required files. */
 include_once(SM_PATH . 'include/validate.php');
-/* sqm_baseuri function */
-include_once(SM_PATH . 'functions/display_messages.php');
+/* form functions */
+include_once(SM_PATH . 'functions/forms.php');
 /** Plugin functions (also loads plugin's config) */
 include_once(SM_PATH . 'plugins/newmail/functions.php');
 
@@ -61,6 +61,17 @@
 echo '<form action="'.sqm_baseuri().'src/options.php" method="post" 
enctype="multipart/form-data">' . "\n" .
         html_tag( 'table', '', '', '', 'width="100%" cellpadding="5" 
cellspacing="0" border="0"' ) . "\n";
 
+/* newmail_unseen_notify */
+$newmail_unseen_opts = array( 0 => _("Follow folder preferences"),
+                              SMPREF_UNSEEN_INBOX => _("INBOX"),
+                              SMPREF_UNSEEN_ALL => _("All folders"),
+                              SMPREF_UNSEEN_SPECIAL => _("Special folders"),
+                              SMPREF_UNSEEN_NORMAL => _("Regular folders"));
+echo html_tag('tr',
+              html_tag('td',_("Check for new messages in:"),'right', '', 
'style="white-space: nowrap;"').
+              
html_tag('td',addSelect('newmail_unseen_notify',$newmail_unseen_opts,$newmail_unseen_notify,true),'left')
+              );
+
 // Option: media_recent
 echo html_tag( 'tr' ) .
         html_tag( 'td', _("Count only messages that are RECENT").':', 'right', 
'', 'style="white-space: nowrap;"' ) .

Reply via email to