wyrie
2009-12-17 26c528286736e9f222b8f2e8a2a6741213d7e5b8
Implemented: FS#1003 - Autoresponder: Start and end date (Server)
2 files modified
37 ■■■■ changed files
server/conf/autoresponder.master 18 ●●●●● patch | view | raw | blame | history
server/plugins-available/maildrop_plugin.inc.php 19 ●●●● patch | view | raw | blame | history
server/conf/autoresponder.master
@@ -6,13 +6,17 @@
       {
               if (!/^X-Spam-Flag: YES/:h )
               {
                      RESPOND="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.msg"
                      RESPONDDB="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lst"
                      # The following must be one contiguous line
                      cc "| mailbot -t $RESPOND -d $RESPONDDB -D 1 \
                      -A 'From: $RECIPIENT' -s 'Auto Response: from $RECIPIENT' \
                      /usr/sbin/sendmail -t -f ''"
                     NOW=time
                     if ({start_date} lt $NOW && {end_date} gt $NOW)
                     {
                          RESPOND="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.msg"
                          RESPONDDB="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lst"
                          # The following must be one contiguous line
                          cc "| mailbot -t $RESPOND -d $RESPONDDB -D 1 \
                          -A 'From: $RECIPIENT' -s 'Auto Response: from $RECIPIENT' \
                          /usr/sbin/sendmail -t -f ''"
                      }
               }
       }
       }
server/plugins-available/maildrop_plugin.inc.php
@@ -104,11 +104,12 @@
            exec("chmod 770 ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]);
        }
        
        // Check if something has been changed regarding the autoresponders
        if($data["old"]["autoresponder_text"] != $data["new"]["autoresponder_text"] 
                or $data["old"]["autoresponder"] != $data["new"]["autoresponder"]
                or (isset($data["new"]["email"]) and $data["old"]["email"] != $data["new"]["email"])) {
                or (isset($data["new"]["email"]) and $data["old"]["email"] != $data["new"]["email"])
                or $data["old"]["autoresponder_start_date"] != $data["new"]["autoresponder_start_date"]
                or $data["old"]["autoresponder_end_date"] != $data["new"]["autoresponder_end_date"]) {
                       
            // We delete the old autoresponder, if it exists
            $email_parts = explode("@",$data["old"]["email"]);
@@ -123,8 +124,9 @@
            $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.msg';
            if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN);
            $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.autoresponder';
            if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN);
            if(is_file($file)) unlink($ar_file) or $app->log("Unable to delete file: $ar_file",LOGLEVEL_WARN);
            //Now we create the new autoresponder, if it is enabled
            if($data["new"]["autoresponder"] == 'y') {
                if(isset($data["new"]["email"])) {
@@ -136,6 +138,15 @@
                // Load the master template
                $tpl = file_get_contents($conf["rootpath"].'/conf/autoresponder.master');
                $tpl = str_replace('{vmail_mailbox_base}',$mail_config["homedir_path"],$tpl);
                if ($data["new"]["autoresponder_start_date"] != '0000-00-00 00:00:00') { // Dates have been set
                    $tpl = str_replace('{start_date}',strtotime($data["new"]["autoresponder_start_date"]),$tpl);
                    $tpl = str_replace('{end_date}',strtotime($data["new"]["autoresponder_end_date"]),$tpl);
                } else {
                    $tpl = str_replace('{start_date}',-7200,$tpl);
                    $tpl = str_replace('{end_date}',2147464800,$tpl);
                }
                // Write the config file.
                $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.autoresponder';
                file_put_contents($config_file_path,$tpl);