diff --git a/interface/web/mail/mail_user_filter_edit.php b/interface/web/mail/mail_user_filter_edit.php index 27c0613d634949f1743961a271ceff9f198eadd2..89f4b4fca3fc707290bc5bfa64155415b77d345b 100644 --- a/interface/web/mail/mail_user_filter_edit.php +++ b/interface/web/mail/mail_user_filter_edit.php @@ -113,49 +113,59 @@ class page_action extends tform_actions { $content = ''; $content .= '### BEGIN FILTER_ID:'.$this->id."\n"; - - if($this->dataRecord["active"] == 'y') { - - if($this->dataRecord["action"] == 'move') { - + + $TargetNoQuotes = $this->dataRecord["target"]; + $TargetQuotes = "\"$TargetNoQuotes\""; + + $TestChDirNoQuotes = '$DEFAULT/.'.$TargetNoQuotes; + $TestChDirQuotes = "\"$TestChDirNoQuotes\""; + + $MailDirMakeNoQuotes = $TargetQuotes.' $DEFAULT'; + + $EchoTargetFinal = $TargetNoQuotes; + + + if($this->dataRecord["action"] == 'move') { + $content .= " -`test -e ".'$DEFAULT/.'.$this->dataRecord["target"]."` -if ( ".'$RETURNCODE'." != 0 ) +`test -e ".$TestChDirQuotes." && exit 1 || exit 0` +if ( ".'$RETURNCODE'." != 1 ) { - `maildirmake -f ".$this->dataRecord["target"].' $DEFAULT'."` - `chmod -R 0700 ".'$DEFAULT/'.$this->dataRecord["target"]."` - `echo INBOX.".$this->dataRecord["target"]." >> ".'$DEFAULT'."/courierimapsubscribed` + `maildirmake -f $MailDirMakeNoQuotes` + `chmod -R 0700 ".$TestChDirQuotes."` + `echo \"INBOX.$EchoTargetFinal\" >> ".'$DEFAULT'."/courierimapsubscribed` } -"; - } - - $content .= "if (/^".$this->dataRecord["source"].":"; - - $searchterm = preg_quote($this->dataRecord["searchterm"]); - - if($this->dataRecord["op"] == 'contains') { - $content .= ".*".$searchterm."/:h)\n"; - } elseif ($this->dataRecord["op"] == 'is') { - $content .= $searchterm."$/:h)\n"; - } elseif ($this->dataRecord["op"] == 'begins') { - $content .= $searchterm."/:h)\n"; - } elseif ($this->dataRecord["op"] == 'ends') { - $content .= ".*".$searchterm."$/:h)\n"; - } - - $content .= "{\n"; - $content .= "exception {\n"; - - if($this->dataRecord["action"] == 'move') { - $content .= 'to $DEFAULT/.'.$this->dataRecord["target"]."/\n"; - } else { - $content .= "to /dev/null\n"; - } - - $content .= "}\n"; - $content .= "}\n"; - +"; + } + + $content .= "if (/^".$this->dataRecord["source"].":"; + + $searchterm = preg_quote($this->dataRecord["searchterm"]); + + if($this->dataRecord["op"] == 'contains') { + $content .= ".*".$searchterm."/:h)\n"; + } elseif ($this->dataRecord["op"] == 'is') { + $content .= $searchterm."$/:h)\n"; + } elseif ($this->dataRecord["op"] == 'begins') { + $content .= $searchterm."/:h)\n"; + } elseif ($this->dataRecord["op"] == 'ends') { + $content .= ".*".$searchterm."$/:h)\n"; } + + $content .= "{\n"; + $content .= "exception {\n"; + + if($this->dataRecord["action"] == 'move') { + $content .= 'ID' . "$this->id" . 'EndFolder = "$DEFAULT/.' . $this->dataRecord['target'] . '/"' . "\n"; + $content .= "to ". '$ID' . "$this->id" . 'EndFolder' . "\n"; + } else { + $content .= "to /dev/null\n"; + } + + $content .= "}\n"; + $content .= "}\n"; + + //} $content .= '### END FILTER_ID:'.$this->id."\n";