diff --git a/interface/web/mail/form/spamfilter_policy.tform.php b/interface/web/mail/form/spamfilter_policy.tform.php
new file mode 100644
index 0000000000000000000000000000000000000000..e701f9b91ec7ff71d260d20fbd8d7e81d5a64909
--- /dev/null
+++ b/interface/web/mail/form/spamfilter_policy.tform.php
@@ -0,0 +1,382 @@
+<?php
+
+/*
+	Form Definition
+
+	Tabledefinition
+
+	Datatypes:
+	- INTEGER (Forces the input to Int)
+	- DOUBLE
+	- CURRENCY (Formats the values to currency notation)
+	- VARCHAR (no format check, maxlength: 255)
+	- TEXT (no format check)
+	- DATE (Dateformat, automatic conversion to timestamps)
+
+	Formtype:
+	- TEXT (Textfield)
+	- TEXTAREA (Textarea)
+	- PASSWORD (Password textfield, input is not shown when edited)
+	- SELECT (Select option field)
+	- RADIO
+	- CHECKBOX
+	- CHECKBOXARRAY
+	- FILE
+
+	VALUE:
+	- Wert oder Array
+
+	Hint:
+	The ID field of the database table is not part of the datafield definition.
+	The ID field must be always auto incement (int or bigint).
+
+
+*/
+
+$form["title"] 			= "Spamfilter policy";
+$form["description"] 	= "";
+$form["name"] 			= "spamfilter_policy";
+$form["action"]			= "spamfilter_policy_edit.php";
+$form["db_table"]		= "spamfilter_policy";
+$form["db_table_idx"]	= "id";
+$form["db_history"]		= "yes";
+$form["tab_default"]	= "policy";
+$form["list_default"]	= "spamfilter_policy_list.php";
+$form["auth"]			= 'yes'; // yes / no
+
+$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['policy'] = array (
+	'title' 	=> "Policy",
+	'width' 	=> 100,
+	'template' 	=> "templates/spamfilter_policy_edit.htm",
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+		'policy_name' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'validators'	=> array ( 	0 => array (	'type'	=> 'NOTEMPTY',
+														'errmsg'=> 'policyname_error_notempty'),
+									),
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'virus_lover' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'spam_lover' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'banned_files_lover' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'bad_header_lover' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'bypass_virus_checks' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'bypass_banned_checks' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'bypass_header_checks' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+
+$form["tabs"]['quarantine'] = array (
+	'title' 	=> "Quarantine",
+	'width' 	=> 100,
+	'template' 	=> "templates/spamfilter_quarantine_edit.htm",
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+		'virus_quarantine_to' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'spam_quarantine_to' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'banned_quarantine_to' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'bad_header_quarantine_to' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'clean_quarantine_to' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'other_quarantine_to' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+$form["tabs"]['taglevel'] = array (
+	'title' 	=> "Tag-Level",
+	'width' 	=> 100,
+	'template' 	=> "templates/spamfilter_taglevel_edit.htm",
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+		'spam_tag_level' => array (
+			'datatype'	=> 'DOUBLE',
+			'formtype'	=> 'TEXT',
+			'default'	=> '0',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'spam_tag2_level' => array (
+			'datatype'	=> 'DOUBLE',
+			'formtype'	=> 'TEXT',
+			'default'	=> '0',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'spam_kill_level' => array (
+			'datatype'	=> 'DOUBLE',
+			'formtype'	=> 'TEXT',
+			'default'	=> '0',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'spam_dsn_cutoff_level' => array (
+			'datatype'	=> 'DOUBLE',
+			'formtype'	=> 'TEXT',
+			'default'	=> '0',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'spam_quarantine_cutoff_level' => array (
+			'datatype'	=> 'DOUBLE',
+			'formtype'	=> 'TEXT',
+			'default'	=> '0',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'spam_modifies_subj' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'spam_subject_tag' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'spam_subject_tag2' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+
+$form["tabs"]['other'] = array (
+	'title' 	=> "Other",
+	'width' 	=> 100,
+	'template' 	=> "templates/spamfilter_other_edit.htm",
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+		'addr_extension_virus' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'addr_extension_spam' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'addr_extension_banned' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'addr_extension_bad_header' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'warnvirusrecip' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'warnbannedrecip' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'warnbadhrecip' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'SELECT',
+			'default'	=> 'N',
+			'value'		=> array('N' => 'No','Y' => 'Yes')
+		),
+		'newvirus_admin' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'virus_admin' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'banned_admin' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'bad_header_admin' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'spam_admin' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		
+		'message_size_limit' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'banned_rulenames' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+?>
\ No newline at end of file
diff --git a/interface/web/mail/lib/lang/en_spamfilter_policy.lng b/interface/web/mail/lib/lang/en_spamfilter_policy.lng
new file mode 100644
index 0000000000000000000000000000000000000000..879c2cbeecd8ac2daac08d131d1a79c43b67353f
--- /dev/null
+++ b/interface/web/mail/lib/lang/en_spamfilter_policy.lng
@@ -0,0 +1,40 @@
+<?php
+$wb["policy_name_txt"] = 'policy_name';
+$wb["virus_lover_txt"] = 'virus_lover';
+$wb["spam_lover_txt"] = 'spam_lover';
+$wb["banned_files_lover_txt"] = 'banned_files_lover';
+$wb["bad_header_lover_txt"] = 'bad_header_lover';
+$wb["bypass_virus_checks_txt"] = 'bypass_virus_checks';
+$wb["bypass_banned_checks_txt"] = 'bypass_banned_checks';
+$wb["bypass_header_checks_txt"] = 'bypass_header_checks';
+$wb["btn_save_txt"] = 'Save';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["virus_quarantine_to_txt"] = 'virus_quarantine_to';
+$wb["spam_quarantine_to_txt"] = 'spam_quarantine_to';
+$wb["banned_quarantine_to_txt"] = 'banned_quarantine_to';
+$wb["bad_header_quarantine_to_txt"] = 'bad_header_quarantine_to';
+$wb["clean_quarantine_to_txt"] = 'clean_quarantine_to';
+$wb["other_quarantine_to_txt"] = 'other_quarantine_to';
+$wb["spam_tag_level_txt"] = 'spam_tag_level';
+$wb["spam_tag2_level_txt"] = 'spam_tag2_level';
+$wb["spam_kill_level_txt"] = 'spam_kill_level';
+$wb["spam_dsn_cutoff_level_txt"] = 'spam_dsn_cutoff_level';
+$wb["spam_quarantine_cutoff_level_txt"] = 'spam_quarantine_cutoff_level';
+$wb["spam_modifies_subj_txt"] = 'spam_modifies_subj';
+$wb["spam_subject_tag_txt"] = 'spam_subject_tag';
+$wb["spam_subject_tag2_txt"] = 'spam_subject_tag2';
+$wb["addr_extension_virus_txt"] = 'addr_extension_virus';
+$wb["addr_extension_spam_txt"] = 'addr_extension_spam';
+$wb["addr_extension_banned_txt"] = 'addr_extension_banned';
+$wb["addr_extension_bad_header_txt"] = 'addr_extension_bad_header';
+$wb["warnvirusrecip_txt"] = 'warnvirusrecip';
+$wb["warnbannedrecip_txt"] = 'warnbannedrecip';
+$wb["warnbadhrecip_txt"] = 'warnbadhrecip';
+$wb["newvirus_admin_txt"] = 'newvirus_admin';
+$wb["virus_admin_txt"] = 'virus_admin';
+$wb["banned_admin_txt"] = 'banned_admin';
+$wb["bad_header_admin_txt"] = 'bad_header_admin';
+$wb["spam_admin_txt"] = 'spam_admin';
+$wb["message_size_limit_txt"] = 'message_size_limit';
+$wb["banned_rulenames_txt"] = 'banned_rulenames';
+?>
\ No newline at end of file
diff --git a/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng
new file mode 100644
index 0000000000000000000000000000000000000000..f9b6dcfb07bcd468e25387cb43807ed0a6593518
--- /dev/null
+++ b/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng
@@ -0,0 +1,15 @@
+<?php
+$wb["list_head_txt"] = 'Spamfilter Policy';
+$wb["policy_name_txt"] = 'Name';
+$wb["virus_lover_txt"] = 'Virus lover';
+$wb["spam_lover_txt"] = 'Spam lover';
+$wb["banned_files_lover_txt"] = 'Banned Files lover';
+$wb["bad_header_lover_txt"] = 'Bad Header lover';
+$wb["page_txt"] = 'Page';
+$wb["page_of_txt"] = 'of';
+$wb["page_next_txt"] = 'Next';
+$wb["page_back_txt"] = 'Back';
+$wb["delete_txt"] = 'Delete';
+$wb["filter_txt"] = 'Filter';
+$wb["add_new_record_txt"] = 'Add Policy record';
+?>
\ No newline at end of file
diff --git a/interface/web/mail/list/spamfilter_policy.list.php b/interface/web/mail/list/spamfilter_policy.list.php
new file mode 100644
index 0000000000000000000000000000000000000000..25ce11d5891e986a2b2acfbe3ddc82637152f85c
--- /dev/null
+++ b/interface/web/mail/list/spamfilter_policy.list.php
@@ -0,0 +1,116 @@
+<?php
+
+/*
+	Datatypes:
+	- INTEGER
+	- DOUBLE
+	- CURRENCY
+	- VARCHAR
+	- TEXT
+	- DATE
+*/
+
+
+
+// Name of the list
+$liste["name"] 				= "spamfilter_policy";
+
+// Database table
+$liste["table"] 			= "spamfilter_policy";
+
+// Index index field of the database table
+$liste["table_idx"]			= "id";
+
+// Search Field Prefix
+$liste["search_prefix"] 	= "search_";
+
+// Records per page
+$liste["records_per_page"] 	= 15;
+
+// Script File of the list
+$liste["file"]				= "spamfilter_policy_list.php";
+
+// Script file of the edit form
+$liste["edit_file"]			= "spamfilter_policy_edit.php";
+
+// Script File of the delete script
+$liste["delete_file"]		= "spamfilter_policy_del.php";
+
+// Paging Template
+$liste["paging_tpl"]		= "templates/paging.tpl.htm";
+
+// Enable auth
+$liste["auth"]				= "yes";
+
+
+/*****************************************************
+* Suchfelder
+*****************************************************/
+
+
+$liste["item"][] = array(	'field'		=> "policy_name",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+
+$liste["item"][] = array(	'field'		=> "virus_lover",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "SELECT",
+							'op'		=> "=",
+							'prefix'	=> "",
+							'suffix'	=> "",
+							'width'		=> "",
+							'value'		=> array('y' => "Yes",'n' => "No"));
+
+
+$liste["item"][] = array(	'field'		=> "spam_lover",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "SELECT",
+							'op'		=> "=",
+							'prefix'	=> "",
+							'suffix'	=> "",
+							'width'		=> "",
+							'value'		=> array('y' => "Yes",'n' => "No"));
+
+
+$liste["item"][] = array(	'field'		=> "banned_files_lover",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "SELECT",
+							'op'		=> "=",
+							'prefix'	=> "",
+							'suffix'	=> "",
+							'width'		=> "",
+							'value'		=> array('y' => "Yes",'n' => "No"));
+
+
+$liste["item"][] = array(	'field'		=> "bad_header_lover",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "SELECT",
+							'op'		=> "=",
+							'prefix'	=> "",
+							'suffix'	=> "",
+							'width'		=> "",
+							'value'		=> array('y' => "Yes",'n' => "No"));
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/mail/spamfilter_policy_del.php b/interface/web/mail/spamfilter_policy_del.php
new file mode 100644
index 0000000000000000000000000000000000000000..46c69ed3f53a55a31af733823a3f013af3a4d4ae
--- /dev/null
+++ b/interface/web/mail/spamfilter_policy_del.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/spamfilter_policy.list.php";
+$tform_def_file = "form/spamfilter_policy.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Checke Berechtigungen für Modul
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+	header("Location: ../index.php");
+	exit;
+}
+
+$app->uses("tform_actions");
+$app->tform_actions->onDelete();
+
+?>
\ No newline at end of file
diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php
new file mode 100644
index 0000000000000000000000000000000000000000..01324d2287278c72f262454731616f60f4f50c73
--- /dev/null
+++ b/interface/web/mail/spamfilter_policy_edit.php
@@ -0,0 +1,62 @@
+<?php
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$tform_def_file = "form/spamfilter_policy.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+	header("Location: ../index.php");
+	exit;
+}
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
+
+class page_action extends tform_actions {
+	
+}
+
+$app->tform_actions = new page_action;
+$app->tform_actions->onLoad();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/mail/spamfilter_policy_list.php b/interface/web/mail/spamfilter_policy_list.php
new file mode 100644
index 0000000000000000000000000000000000000000..539f8a16f5c6bd850ca2c49cc3dba01706252a73
--- /dev/null
+++ b/interface/web/mail/spamfilter_policy_list.php
@@ -0,0 +1,27 @@
+<?php
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/spamfilter_policy.list.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+// Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+	header("Location: ../index.php");
+	exit;
+}
+
+$app->uses('listform_actions');
+//$app->listform_actions->SQLExtWhere = "wb = 'W'";
+
+$app->listform_actions->onLoad();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/mail/spamfilter_whitelist_del.php b/interface/web/mail/spamfilter_whitelist_del.php
index ed2e409b97a9c6f94292e6ecd19624ce487fce89..19803db94237355c968b11d54327384a2e987cb9 100644
--- a/interface/web/mail/spamfilter_whitelist_del.php
+++ b/interface/web/mail/spamfilter_whitelist_del.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/mail/spamfilter_whitelist_edit.php b/interface/web/mail/spamfilter_whitelist_edit.php
index 632d3e4575337f8fe9f835e0be46c4189ee3972c..b8c8bfa02293878ba7bd840dc1bd9fdf1a1d698c 100644
--- a/interface/web/mail/spamfilter_whitelist_edit.php
+++ b/interface/web/mail/spamfilter_whitelist_edit.php
@@ -1,6 +1,6 @@
 <?php
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/mail/templates/spamfilter_other_edit.htm b/interface/web/mail/templates/spamfilter_other_edit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9802d73edccbac78fd7aa0aee892143dd1548d5f
--- /dev/null
+++ b/interface/web/mail/templates/spamfilter_other_edit.htm
@@ -0,0 +1,80 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td class="frmText11">{tmpl_var name='addr_extension_virus_txt'}:</td>
+    <td class="frmText11"><input name="addr_extension_virus" type="text" class="text" value="{tmpl_var name='addr_extension_virus'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='addr_extension_spam_txt'}:</td>
+    <td class="frmText11"><input name="addr_extension_spam" type="text" class="text" value="{tmpl_var name='addr_extension_spam'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='addr_extension_banned_txt'}:</td>
+    <td class="frmText11"><input name="addr_extension_banned" type="text" class="text" value="{tmpl_var name='addr_extension_banned'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='addr_extension_bad_header_txt'}:</td>
+    <td class="frmText11"><input name="addr_extension_bad_header" type="text" class="text" value="{tmpl_var name='addr_extension_bad_header'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='warnvirusrecip_txt'}:</td>
+    <td class="frmText11">
+		<select name="warnvirusrecip" class="text">
+			{tmpl_var name='warnvirusrecip'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='warnbannedrecip_txt'}:</td>
+    <td class="frmText11">
+		<select name="warnbannedrecip" class="text">
+			{tmpl_var name='warnbannedrecip'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='warnbadhrecip_txt'}:</td>
+    <td class="frmText11">
+		<select name="warnbadhrecip" class="text">
+			{tmpl_var name='warnbadhrecip'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='newvirus_admin_txt'}:</td>
+    <td class="frmText11"><input name="newvirus_admin" type="text" class="text" value="{tmpl_var name='newvirus_admin'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='virus_admin_txt'}:</td>
+    <td class="frmText11"><input name="virus_admin" type="text" class="text" value="{tmpl_var name='virus_admin'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='banned_admin_txt'}:</td>
+    <td class="frmText11"><input name="banned_admin" type="text" class="text" value="{tmpl_var name='banned_admin'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='bad_header_admin_txt'}:</td>
+    <td class="frmText11"><input name="bad_header_admin" type="text" class="text" value="{tmpl_var name='bad_header_admin'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_admin_txt'}:</td>
+    <td class="frmText11"><input name="spam_admin" type="text" class="text" value="{tmpl_var name='spam_admin'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='message_size_limit_txt'}:</td>
+    <td class="frmText11"><input name="message_size_limit" type="text" class="text" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='banned_rulenames_txt'}:</td>
+    <td class="frmText11"><input name="banned_rulenames" type="text" class="text" value="{tmpl_var name='banned_rulenames'}" size="30" maxlength="255"></td>
+  </tr>  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='spamfilter_policy_list.php';">
+    </td>
+  </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7fb8d3d136c56146645111d51e54f3a32931e88f
--- /dev/null
+++ b/interface/web/mail/templates/spamfilter_policy_edit.htm
@@ -0,0 +1,72 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td class="frmText11">{tmpl_var name='policy_name_txt'}:</td>
+    <td class="frmText11"><input name="policy_name" type="text" class="text" value="{tmpl_var name='policy_name'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='virus_lover_txt'}:</td>
+    <td class="frmText11">
+		<select name="virus_lover" class="text">
+			{tmpl_var name='virus_lover'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_lover_txt'}:</td>
+    <td class="frmText11">
+		<select name="spam_lover" class="text">
+			{tmpl_var name='spam_lover'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='banned_files_lover_txt'}:</td>
+    <td class="frmText11">
+		<select name="banned_files_lover" class="text">
+			{tmpl_var name='banned_files_lover'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='bad_header_lover_txt'}:</td>
+    <td class="frmText11">
+		<select name="bad_header_lover" class="text">
+			{tmpl_var name='bad_header_lover'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='bypass_virus_checks_txt'}:</td>
+    <td class="frmText11">
+		<select name="bypass_virus_checks" class="text">
+			{tmpl_var name='bypass_virus_checks'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='bypass_banned_checks_txt'}:</td>
+    <td class="frmText11">
+		<select name="bypass_banned_checks" class="text">
+			{tmpl_var name='bypass_banned_checks'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='bypass_header_checks_txt'}:</td>
+    <td class="frmText11">
+		<select name="bypass_header_checks" class="text">
+			{tmpl_var name='bypass_header_checks'}
+		</select>
+	</td>
+  </tr>  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='spamfilter_policy_list.php';">
+    </td>
+  </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/mail/templates/spamfilter_policy_list.htm b/interface/web/mail/templates/spamfilter_policy_list.htm
new file mode 100644
index 0000000000000000000000000000000000000000..43d02b061f5315d77ca34a9645277b8281464067
--- /dev/null
+++ b/interface/web/mail/templates/spamfilter_policy_list.htm
@@ -0,0 +1,36 @@
+<form name="myform" action="spamfilter_policy_list.php" method="POST">
+<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
+<input type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="location.href='spamfilter_policy_edit.php'" /><br /><br />
+<table width="100%" border="0" cellspacing="0" cellpadding="4">
+  <tr>
+    <td class="tblHead"><tmpl_var name="policy_name_txt"></td>
+    <td class="tblHead"><tmpl_var name="virus_lover_txt"></td>
+    <td class="tblHead"><tmpl_var name="spam_lover_txt"></td>
+    <td class="tblHead"><tmpl_var name="banned_files_lover_txt"></td>
+    <td class="tblHead"><tmpl_var name="bad_header_lover_txt"></td>
+    <td class="tblHead">&nbsp;</td>
+  </tr>
+  <tr>
+    <td class="frmText11"><input type="text" name="search_policy_name" value="{tmpl_var name='search_policy_name'}" class="text" /></td>
+    <td class="frmText11"><select name="search_virus_lover" onChange="document.myform.submit();">{tmpl_var name='search_virus_lover'}</select></td>
+    <td class="frmText11"><select name="search_spam_lover" onChange="document.myform.submit();">{tmpl_var name='search_spam_lover'}</select></td>
+    <td class="frmText11"><select name="search_banned_files_lover" onChange="document.myform.submit();">{tmpl_var name='search_banned_files_lover'}</select></td>
+    <td class="frmText11"><select name="search_bad_header_lover" onChange="document.myform.submit();">{tmpl_var name='search_bad_header_lover'}</select></td>
+    <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
+  </tr>
+  <tmpl_loop name="records">
+  <tr bgcolor="{tmpl_var name="bgcolor"}">
+    <td class="frmText11"><a href="spamfilter_policy_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="policy_name"}</a></td>
+    <td class="frmText11"><a href="spamfilter_policy_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="virus_lover"}</a></td>
+    <td class="frmText11"><a href="spamfilter_policy_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="spam_lover"}</a></td>
+    <td class="frmText11"><a href="spamfilter_policy_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="banned_files_lover"}</a></td>
+    <td class="frmText11"><a href="spamfilter_policy_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="bad_header_lover"}</a></td>
+    <td class="frmText11" align="right">[<a href="javascript: del_record('spamfilter_policy_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
+  </tr>
+  </tmpl_loop>
+
+  <tr>
+  	<td colspan="6" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
+  </tr>
+</table>
+</form>
\ No newline at end of file
diff --git a/interface/web/mail/templates/spamfilter_quarantine_edit.htm b/interface/web/mail/templates/spamfilter_quarantine_edit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..23113669e8f5f7e00c2b8127e830ee11ad14c60d
--- /dev/null
+++ b/interface/web/mail/templates/spamfilter_quarantine_edit.htm
@@ -0,0 +1,36 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td class="frmText11">{tmpl_var name='virus_quarantine_to_txt'}:</td>
+    <td class="frmText11"><input name="virus_quarantine_to" type="text" class="text" value="{tmpl_var name='virus_quarantine_to'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_quarantine_to_txt'}:</td>
+    <td class="frmText11"><input name="spam_quarantine_to" type="text" class="text" value="{tmpl_var name='spam_quarantine_to'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='banned_quarantine_to_txt'}:</td>
+    <td class="frmText11"><input name="banned_quarantine_to" type="text" class="text" value="{tmpl_var name='banned_quarantine_to'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='bad_header_quarantine_to_txt'}:</td>
+    <td class="frmText11"><input name="bad_header_quarantine_to" type="text" class="text" value="{tmpl_var name='bad_header_quarantine_to'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='clean_quarantine_to_txt'}:</td>
+    <td class="frmText11"><input name="clean_quarantine_to" type="text" class="text" value="{tmpl_var name='clean_quarantine_to'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='other_quarantine_to_txt'}:</td>
+    <td class="frmText11"><input name="other_quarantine_to" type="text" class="text" value="{tmpl_var name='other_quarantine_to'}" size="30" maxlength="255"></td>
+  </tr>  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='spamfilter_policy_list.php';">
+    </td>
+  </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/mail/templates/spamfilter_taglevel_edit.htm b/interface/web/mail/templates/spamfilter_taglevel_edit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..526c238df02e211268c7d65dfbfc98ee5c8fd6b8
--- /dev/null
+++ b/interface/web/mail/templates/spamfilter_taglevel_edit.htm
@@ -0,0 +1,48 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_tag_level_txt'}:</td>
+    <td class="frmText11"><input name="spam_tag_level" type="text" class="text" value="{tmpl_var name='spam_tag_level'}" size="10" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_tag2_level_txt'}:</td>
+    <td class="frmText11"><input name="spam_tag2_level" type="text" class="text" value="{tmpl_var name='spam_tag2_level'}" size="10" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_kill_level_txt'}:</td>
+    <td class="frmText11"><input name="spam_kill_level" type="text" class="text" value="{tmpl_var name='spam_kill_level'}" size="10" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_dsn_cutoff_level_txt'}:</td>
+    <td class="frmText11"><input name="spam_dsn_cutoff_level" type="text" class="text" value="{tmpl_var name='spam_dsn_cutoff_level'}" size="10" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_quarantine_cutoff_level_txt'}:</td>
+    <td class="frmText11"><input name="spam_quarantine_cutoff_level" type="text" class="text" value="{tmpl_var name='spam_quarantine_cutoff_level'}" size="10" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_modifies_subj_txt'}:</td>
+    <td class="frmText11">
+		<select name="spam_modifies_subj" class="text">
+			{tmpl_var name='spam_modifies_subj'}
+		</select>
+	</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_subject_tag_txt'}:</td>
+    <td class="frmText11"><input name="spam_subject_tag" type="text" class="text" value="{tmpl_var name='spam_subject_tag'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='spam_subject_tag2_txt'}:</td>
+    <td class="frmText11"><input name="spam_subject_tag2" type="text" class="text" value="{tmpl_var name='spam_subject_tag2'}" size="30" maxlength="255"></td>
+  </tr>  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='spamfilter_policy_list.php';">
+    </td>
+  </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file