ftimme
2013-06-08 fe9a23f542bc56c1c0b6dc30257418e38ff7bd3a
server/plugins-available/maildeliver_plugin.inc.php
@@ -158,16 +158,51 @@
         //* Set alias addresses for autoresponder
         $sql = "SELECT * FROM mail_forwarding WHERE type = 'alias' AND destination = '".$app->db->quote($data["new"]["email"])."'";
         $records = $app->db->queryAllRecords($sql);
         $addresses = '';
         $addresses = array();
         $addresses[] = $data["new"]["email"];
         if(is_array($records) && count($records) > 0) {
            $addresses .= ':addresses ["'.$data["new"]["email"].'",';
            foreach($records as $rec) {
               $addresses .= '"'.$rec['source'].'",';
               $addresses[] = $rec['source'];
            }
            $addresses = substr($addresses,0,-1);
            $addresses .= ']';
         }
         $tpl->setVar('addresses',$addresses);
            $app->log("Found " . count($addresses) . " addresses.",LOGLEVEL_DEBUG);
            $alias_addresses = array();
         $email_parts = explode('@',$data["new"]["email"]);
         $sql = "SELECT * FROM mail_forwarding WHERE type = 'aliasdomain' AND destination = '@".$app->db->quote($email_parts[1])."'";
         $records = $app->db->queryAllRecords($sql);
         if(is_array($records) && count($records) > 0) {
                $app->log("Found " . count($records) . " records (aliasdomains).",LOGLEVEL_DEBUG);
            foreach($records as $rec) {
               $aliasdomain = substr($rec['source'],1);
               foreach($addresses as $email) {
                  $email_parts = explode('@',$email);
                  $alias_addresses[] = $email_parts[0].'@'.$aliasdomain;
               }
            }
         }
            $app->log("Found " . count($addresses) . " addresses at all.",LOGLEVEL_DEBUG);
            $addresses = array_unique(array_merge($addresses, $alias_addresses));
            $app->log("Found " . count($addresses) . " unique addresses at all.",LOGLEVEL_DEBUG);
         $address_str = '';
         if(is_array($addresses) && count($addresses) > 0) {
            $address_str .= ':addresses [';
            foreach($addresses as $rec) {
               $address_str .= '"'.$rec.'",';
            }
            $address_str = substr($address_str,0,-1);
            $address_str .= ']';
         }
         $tpl->setVar('addresses',$address_str);
         
         file_put_contents($sieve_file,$tpl->grab());