[Tickets #8982] Ingo Procmail vacation rules bug

bugs at horde.org bugs at horde.org
Thu Apr 22 06:54:04 UTC 2010


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/8982
------------------------------------------------------------------------------
  Ticket             | 8982
  Created By         | rene.plattner at uibk.ac.at
  Summary            | Ingo Procmail vacation rules bug
  Queue              | Ingo
  Version            | 1.2.3
  Type               | Bug
  State              | Unconfirmed
  Priority           | 1. Low
  Milestone          | MYASK
  Patch              |
  Owners             |
------------------------------------------------------------------------------


rene.plattner at uibk.ac.at (2010-04-22 02:54) wrote:

I noticed that the vacation rule sends a vacation notice but didn't  
deliver the message.
The next message of the same sender is delivered.
This is caused because the last rule with the eh flags checks the  
result of the preceding rule. If the sender is not it the vacation  
file then the result of formail is an error and the last rule is  
executed und the script finish without to deliver the received  
message. So we need a carbon copy flag (c) to deliver the received  
message.
I added this flag to the last rule and discovered a double delivery of  
the message.
Then I used the vacation with a time window an discovered that it works.
Finally I used the time vacation code for the vacation without a time  
frame with removed time check rule.
So I updated the code as follows:

--- horde-orig/ingo/lib/Script/procmail.php       2009-09-16  
14:37:22.000000000 +0200
+++ horde-dev/ingo/lib/Script/procmail.php       2010-04-21  
10:00:29.000000000 +0200
@@ -491,9 +491,9 @@
                      $this->_action[] = '    :0 Whc:  
${VACATION_DIR:-.}/vacation.lock';
                      if ($timed) {
                          $this->_action[] = '    * ? test $DATE -gt  
$START && test $END -gt $DATE';
-                       $this->_action[] = '    {';
-                        $this->_action[] = '      :0 Wh';
                      }
+                    $this->_action[] = '    {';
+                    $this->_action[] = '      :0 Wh';
                      $this->_action[] = '      * ^TO_' . $address;
                      $this->_action[] = '      * !^X-Loop: ' . $address;
                      $this->_action[] = '      * !^X-Spam-Flag: YES';
@@ -524,9 +524,7 @@
                      $reason = addcslashes($reason, "\\\n\r\t\"`");
                      $this->_action[] = '       ' .  
$this->_params['echo'] . ' -e "' . $reason . '" \\';
                      $this->_action[] = '      ) | $SENDMAIL -f' .  
$address . ' -oi -t';
-                    if ($timed) {
-                        $this->_action[] = '    }';
-                    }
+                    $this->_action[] = '    }';
                      $this->_action[] = '  }';
                  }
              }

Kind regards,

Rene Plattner






More information about the bugs mailing list