From e2b4f760bb91caf66445a888c7a185e972e97a3c Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Tue, 11 Feb 2014 04:45:44 -0500
Subject: [PATCH]  Merge branch 'master' into 'master'

---
 interface/web/admin/lib/lang/ar_server_config.lng     |    1 
 install/dist/tpl/gentoo/amavisd-ispconfig.conf.master |   16 ++++++++
 interface/web/admin/lib/lang/es_server_config.lng     |    1 
 interface/web/admin/lib/lang/tr_server_config.lng     |    1 
 interface/web/admin/form/server_config.tform.php      |   14 ++++--
 interface/web/admin/lib/lang/de_server_config.lng     |    1 
 interface/web/admin/lib/lang/nl_server_config.lng     |    1 
 interface/web/admin/lib/lang/hu_server_config.lng     |    1 
 interface/web/admin/lib/lang/pl_server_config.lng     |    1 
 interface/web/admin/lib/lang/ru_server_config.lng     |    1 
 interface/web/admin/lib/lang/ro_server_config.lng     |    1 
 interface/web/admin/lib/lang/br_server_config.lng     |    1 
 interface/lib/classes/validate_dkim.inc.php           |   12 ------
 interface/web/admin/lib/lang/hr_server_config.lng     |    1 
 interface/web/admin/lib/lang/fr_server_config.lng     |    1 
 server/plugins-available/mail_plugin_dkim.inc.php     |   15 +++++--
 interface/web/admin/lib/lang/fi_server_config.lng     |    1 
 interface/web/admin/lib/lang/se_server_config.lng     |    1 
 interface/web/admin/lib/lang/en_server_config.lng     |    1 
 install/tpl/amavisd_user_config.master                |   12 ++++++
 interface/web/admin/lib/lang/sk_server_config.lng     |    1 
 interface/web/admin/lib/lang/cz_server_config.lng     |    1 
 interface/web/admin/lib/lang/it_server_config.lng     |    1 
 interface/web/admin/lib/lang/id_server_config.lng     |    1 
 interface/web/admin/lib/lang/ja_server_config.lng     |    1 
 interface/web/admin/lib/lang/pt_server_config.lng     |    1 
 interface/web/admin/lib/lang/bg_server_config.lng     |    1 
 27 files changed, 48 insertions(+), 43 deletions(-)

diff --git a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master
index d67c60a..32ee177 100644
--- a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master
+++ b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master
@@ -93,6 +93,22 @@
 # Set the log_level to 5 for debugging
 $log_level = 0;                # (defaults to 0)
 
+$inet_socket_port = [10024,10026];
+$forward_method = 'smtp:[127.0.0.1]:10025';
+$notify_method = 'smtp:[127.0.0.1]:10027';
+$interface_policy{'10026'} = 'ORIGINATING';
+$policy_bank{'ORIGINATING'} = {
+  originating => 1,
+  smtpd_discard_ehlo_keywords => ['8BITMIME'],
+  forward_method => 'smtp:[127.0.0.1]:10027',
+};
+@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12
+192.168.0.0/16);
+$signed_header_fields{'received'} = 0; # turn off signing of Received
+$enable_dkim_verification = 1;
+$enable_dkim_signing = 1;
+@dkim_signature_options_bysender_maps = (
+{ '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );
 
 #------------ Do not modify anything below this line -------------
 1;  # insure a defined return
diff --git a/install/tpl/amavisd_user_config.master b/install/tpl/amavisd_user_config.master
index d831a41..2e5a73d 100644
--- a/install/tpl/amavisd_user_config.master
+++ b/install/tpl/amavisd_user_config.master
@@ -75,6 +75,18 @@
 # Set the log_level to 5 for debugging
 $log_level = 0;                # (defaults to 0)
 
+$inet_socket_port = [10024,10026];
+$forward_method = 'smtp:[127.0.0.1]:10025';
+$notify_method = 'smtp:[127.0.0.1]:10027';
+$interface_policy{'10026'} = 'ORIGINATING';
+$policy_bank{'ORIGINATING'} = {
+  originating => 1,
+  smtpd_discard_ehlo_keywords => ['8BITMIME'],
+  forward_method => 'smtp:[127.0.0.1]:10027',
+};
+@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12
+192.168.0.0/16);
+
 # DKIM
 
 $enable_dkim_verification = 1;
diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php
index 695288e..5a9b8c0 100644
--- a/interface/lib/classes/validate_dkim.inc.php
+++ b/interface/lib/classes/validate_dkim.inc.php
@@ -57,18 +57,6 @@
 		}
 	}
 
-
-	/**
-	 * Validator function for DKIM Path
-	 * @return boolean - true when the dkim-path exists and is writeable
-	 */
-	function check_dkim_path($field_name, $field_value, $validator) {
-		if(empty($field_value)) return $this->get_error($validator['errmsg']);
-		if (substr(sprintf('%o', fileperms($field_value)), -3) <= 600)
-			return $this->get_error($validator['errmsg']);
-	}
-
-
 	/**
 	 * Check function for DNS-Template
 	 */
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 89165ec..5b270c6 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -303,15 +303,19 @@
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
 			'default' => '/var/lib/amavis/dkim',
-			'validators'    => array (  0 => array ('type'  => 'CUSTOM',
-					'class' => 'validate_dkim',
-					'function' => 'check_dkim_path',
-					'errmsg'=> 'dkim_path_error'),
-			),
 			'value' => '',
 			'width' => '40',
 			'maxlength' => '255'
 		),
+        'relayhost_password' => array(
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'default' => '',
+            'value' => '',
+            'width' => '40',
+            'maxlength' => '255'
+        ),
+
 		'pop3_imap_daemon' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'SELECT',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index 4175aa1..a6ab09e 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 8a28512..73cfefd 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 12557b7..bcda7c3 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 05fa269..8290bec 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -184,7 +184,6 @@
 $wb['monit_password_txt'] = 'Monit Password';
 $wb['monit_url_error_regex'] = 'Invalid Monit URL';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb['monit_url_note_txt'] = 'Placeholder:';
 $wb['munin_url_txt'] = 'Munin URL';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 26d5e24..712d350 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -20,7 +20,6 @@
 $wb['maildir_path_txt'] = 'Maildir Pfad';
 $wb['homedir_path_txt'] = 'Homedir Pfad';
 $wb['dkim_path_txt'] = 'DKIM Pfad';
-$wb['dkim_path_error'] = 'DKIM Pfad nicht gefunden oder nicht beschreibbar.';
 $wb['mailuser_uid_txt'] = 'Mailbenutzer UID';
 $wb['mailuser_gid_txt'] = 'Mailbenutzer GID';
 $wb['mailuser_name_txt'] = 'Mailbenutzer Name';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index e472859..1084372 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -31,7 +31,6 @@
 $wb["maildir_path_txt"] = 'Maildir Path';
 $wb["homedir_path_txt"] = 'Homedir Path';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb["mailuser_uid_txt"] = 'Mailuser UID';
 $wb["mailuser_gid_txt"] = 'Mailuser GID';
 $wb["mailuser_name_txt"] = 'Mailuser Name';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index b4efb0e..7913272 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 2ee8b4f..1f3cd2b 100755
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 22048a4..c20ee61 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -19,7 +19,6 @@
 $wb['maildir_path_txt'] = 'Chemin Maildir';
 $wb['homedir_path_txt'] = 'Chemin Homedir';
 $wb['dkim_path_txt'] = 'Chemin DKIM';
-$wb['dkim_path_error'] = 'Le chemin DKIM n\'est pas trouvé ou ne peut être écrit.';
 $wb['mailuser_uid_txt'] = 'UID de l\'utilisateur mail';
 $wb['mailuser_gid_txt'] = 'GID de l\'utilisateur mail';
 $wb['mailuser_name_txt'] = 'Nom d\'utilisateur mail';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 627cf50..153a4cd 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index c0cc373..b616a35 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index ad3b1f9..64ab31c 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index d244720..8b3a7d8 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 60e621f..d78c631 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index f54d1c5..63dd76a 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index efe2623..84f1e94 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 521d144..6e3367b 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 05ff9b0..537c944 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 76429e9..f8f65ac 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index ddcb1f0..f84cf23 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index ebc2c6b..e4ba68a 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 3b86042..8371640 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -190,7 +190,6 @@
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
 $wb["dkim_path_txt"] = 'DKIM Path';
-$wb["dkim_path_error"] = 'DKIM Path not found or not writeable.';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb["v6_prefix_txt"] = 'IPv6 Prefix';
 $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php
index 325dc0b..72d9f45 100644
--- a/server/plugins-available/mail_plugin_dkim.inc.php
+++ b/server/plugins-available/mail_plugin_dkim.inc.php
@@ -107,11 +107,18 @@
 		}
 		/* dir for dkim-keys writeable? */
 		$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail');
-		if (isset($mail_config['dkim_path']) && isset($data['new']['dkim_private']) && !empty($data['new']['dkim_private'])) {
+		if (isset($mail_config['dkim_path']) && (!empty($mail_config['dkim_path'])) && isset($data['new']['dkim_private']) && !empty($data['new']['dkim_private'])) {
+
+            if (!is_dir($mail_config['dkim_path'])) {
+                $app->log('DKIM Path '.$mail_config['dkim_path'].' not found - (re)created.', LOGLEVEL_DEBUG);
+                mkdir($mail_config['dkim_path'], 0750, true);
+            }
+
 			if (!is_writeable($mail_config['dkim_path'])) {
-				$app->log('DKIM Path '.$mail_config['dkim_path'].' not found or not writeable.', LOGLEVEL_ERROR);
+				$app->log('DKIM Path '.$mail_config['dkim_path'].' not writeable.', LOGLEVEL_ERROR);
 				$check=false;
 			}
+
 		} else {
 			$app->log('Unable to write DKIM settings; Check your config!', LOGLEVEL_ERROR);
 			$check=false;
@@ -160,7 +167,7 @@
 			/* save the DKIM Public-key in dkim-dir */
 			if (!file_put_contents($key_file.'.public', $public_key) === false)
 				$app->log('Saved DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG);
-			else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_WARNING);
+			else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG);
 		}
 		return $success;
 	}
@@ -220,7 +227,7 @@
 			file_put_contents($this->get_amavis_config(), $amavis_config);
 			$app->log('Deleted the DKIM settings from amavis-config for '.$key_domain.'.', LOGLEVEL_DEBUG);
 			$this->restart_amavis();
-		} else $app->log('Unable to delete the DKIM settings from amavis-config for '.$key_domain.'.', LOGLEVEL_ERROR);
+		} else $app->log('Unable to delete the DKIM settings from amavis-config for '.$key_domain.'.', LOGLEVEL_DEBUG);
 	}
 
 	/**

--
Gitblit v1.9.1