<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Ingo Procmail vacation rules bug</title> 
  <pubDate>Sun, 05 Apr 2026 12:50:43 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/8982</link> 
  <atom:link rel="self" type="application/rss+xml" title="Ingo Procmail vacation rules bug" href="https://bugs.horde.org/ticket/8982/rss" /> 
  <description>Ingo Procmail vacation rules bug</description> 
 
   
   
  <item> 
   <title>I noticed that the vacation rule sends a vacation notice but</title> 
   <description>I noticed that the vacation rule sends a vacation notice but didn&#039;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-&gt;_action[] = &#039;    :0 Whc: ${VACATION_DIR:-.}/vacation.lock&#039;;                         
                     if ($timed) {                                                                              
                         $this-&gt;_action[] = &#039;    * ? test $DATE -gt $START &amp;&amp; test $END -gt $DATE&#039;;             
-                       $this-&gt;_action[] = &#039;    {&#039;;                                                             
-                        $this-&gt;_action[] = &#039;      :0 Wh&#039;;                                                      
                     }                                                                                          
+                    $this-&gt;_action[] = &#039;    {&#039;;                                                                
+                    $this-&gt;_action[] = &#039;      :0 Wh&#039;;                                                          
                     $this-&gt;_action[] = &#039;      * ^TO_&#039; . $address;                                              
                     $this-&gt;_action[] = &#039;      * !^X-Loop: &#039; . $address;                                        
                     $this-&gt;_action[] = &#039;      * !^X-Spam-Flag: YES&#039;;                                           
@@ -524,9 +524,7 @@                                                                                             
                     $reason = addcslashes($reason, &quot;\\\n\r\t\&quot;`&quot;);                                             
                     $this-&gt;_action[] = &#039;       &#039; . $this-&gt;_params[&#039;echo&#039;] . &#039; -e &quot;&#039; . $reason . &#039;&quot; \\&#039;;        
                     $this-&gt;_action[] = &#039;      ) | $SENDMAIL -f&#039; . $address . &#039; -oi -t&#039;;                        
-                    if ($timed) {                                                                              
-                        $this-&gt;_action[] = &#039;    }&#039;;                                                            
-                    }                                                                                          
+                    $this-&gt;_action[] = &#039;    }&#039;;                                                                
                     $this-&gt;_action[] = &#039;  }&#039;;                                                                  
                 }                                                                                              
             }

Kind regards,

Rene Plattner</description> 
   <pubDate>Thu, 22 Apr 2010 06:54:04 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/8982#t58606</link> 
  </item> 
   
  <item> 
   <title>I can verify that vacation generates a bad procmail script -</title> 
   <description>I can verify that vacation generates a bad procmail script -- when the auto-reply is triggered normal delivery is not completed.

But the fix is much easier. There&#039;s just a missing &quot;c&quot; on the rule that actually sends the reply; we need procmail to reply to a copy of the message so that it continues rather than stopping after the reply is sent.

So the code should be:

$this-&gt;_action[] = &#039;      | formail -rD 8192 ${VACATION_DIR:-.}/.vacation.&#039; . $address;
$this-&gt;_action[] = &#039;      :0 ehc&#039;;
$this-&gt;_action[] = &#039;      | (formail -rI&quot;Precedence: junk&quot; \\&#039;;

Rather than the current:

$this-&gt;_action[] = &#039;      | formail -rD 8192 ${VACATION_DIR:-.}/.vacation.&#039; . $address;
$this-&gt;_action[] = &#039;      :0 eh&#039;;
$this-&gt;_action[] = &#039;      | (formail -rI&quot;Precedence: junk&quot; \\&#039;;
</description> 
   <pubDate>Sat, 24 Apr 2010 19:56:43 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/8982#t58628</link> 
  </item> 
   
  <item> 
   <title>As a first step I added the c flag but I disvocered sometime</title> 
   <description>As a first step I added the c flag but I disvocered sometimes a dual delivery of mails.
So I decided to block the rule as the date rule version.</description> 
   <pubDate>Mon, 26 Apr 2010 06:25:18 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/8982#t58631</link> 
  </item> 
   
  <item> 
   <title>Is anyone working on this bug? IMHO this is a pretty serious</title> 
   <description>Is anyone working on this bug? IMHO this is a pretty serious issue. I can confirm that the patch the original submitter added in the bug text works. I have attached the same patch as an attachment in case this is more convenient to integrate.</description> 
   <pubDate>Mon, 28 Jun 2010 16:58:58 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/8982#t59235</link> 
  </item> 
   
  <item> 
   <title>Changes have been made in CVS for this ticket:

[jan] Fix </title> 
   <description>Changes have been made in CVS for this ticket:

[jan] Fix procmail vacation rule if no dates are set (Gaudenz Steinlin
      &lt;gaudenz@debian.org&gt;, Bug #9134).
http://cvs.horde.org/diff.php/ingo/docs/CHANGES?rt=horde&amp;r1=1.55.2.144&amp;r2=1.55.2.145&amp;ty=u
http://cvs.horde.org/diff.php/ingo/lib/Script/procmail.php?rt=horde&amp;r1=1.46.10.35&amp;r2=1.46.10.36&amp;ty=u</description> 
   <pubDate>Sat, 07 Aug 2010 13:44:50 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/8982#t59549</link> 
  </item> 
   
  <item> 
   <title>Changes have been made in Git for this ticket:

Fix procmail</title> 
   <description>Changes have been made in Git for this ticket:

Fix procmail vacation rule if no dates are set (Gaudenz Steinlin &lt;gaudenz@debian.org&gt;, Bug #8982).

http://git.horde.org/diff.php/ingo/docs/CHANGES?rt=horde-git&amp;r1=ac2de5be025256de7a2eec40b1662ed0e9c87699&amp;r2=cda18fe5401fff1daa9b11675c51062fea1dcca0
http://git.horde.org/diff.php/ingo/lib/Script/Procmail/Recipe.php?rt=horde-git&amp;r1=c4232e3d4d98929909c02900d62a188479d4eccd&amp;r2=cda18fe5401fff1daa9b11675c51062fea1dcca0</description> 
   <pubDate>Sat, 07 Aug 2010 13:48:35 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/8982#t59552</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
