diff --git a/interface/web/dns/dns_dmarc_edit.php b/interface/web/dns/dns_dmarc_edit.php
new file mode 100644
index 0000000000000000000000000000000000000000..4c6402a0d46ffd16b7c09d36837a88f586935a58
--- /dev/null
+++ b/interface/web/dns/dns_dmarc_edit.php
@@ -0,0 +1,409 @@
+<?php
+/*
+Copyright (c) 2014, Florian Schaal, info@schaal-24.de
+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/dns_dmarc.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once '../../lib/config.inc.php';
+require_once '../../lib/app.inc.php';
+
+//* Check permissions for module
+$app->auth->check_module_permissions('dns');
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions,validate_dns');
+$app->load('tform_actions');
+
+class page_action extends tform_actions {
+	function onShowNew() {
+		global $app, $conf;
+		// we will check only users, not admins
+		if($_SESSION["s"]["user"]["typ"] == 'user') {
+
+			// Get the limits of the client
+			$client_group_id = intval($_SESSION["s"]["user"]["default_group"]);
+			$client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+
+			// Check if the user may add another mailbox.
+			if($client["limit_dns_record"] >= 0) {
+				$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id);
+				if($tmp["number"] >= $client["limit_dns_record"]) {
+					$app->error($app->tform->wordbook["limit_dns_record_txt"]);
+				}
+			}
+		}
+
+		parent::onShowNew();
+	}
+
+	function onShowEnd() {
+		global $app, $conf;
+
+		$zone = $app->functions->intval($_GET['zone']);
+		// get domain-name
+		$sql = "SELECT * FROM dns_soa WHERE id = ? AND ?";
+		$rec = $app->db->queryOneRecord($sql, $zone, $app->tform->getAuthSQL('r'));
+		$domain_name = rtrim($rec['origin'], '.');
+
+		// set defaults
+		$dmarc_policy = 'none';
+		$dmarc_adkim = 'r';
+		$dmarc_aspf = 'r';
+		$dmarc_rf = 'afrf';
+		$dmarc_pct = 100;
+		$dmarc_ri = 86400;
+		$dmarc_sp = 'same';
+
+		//* check for an existing dmarc-record
+		$sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name = ? AND ?";
+		$rec = $app->db->queryOneRecord($sql, $zone, '_dmarc.'.$domain_name.'.', $app->tform->getAuthSQL('r'));
+		if ( isset($rec) && !empty($rec) ) {
+			$this->id = 1;
+			$old_data = strtolower($rec['data']);
+			$app->tpl->setVar("data", $old_data);
+			if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED");
+			$dmarc_rua = '';
+			$dmarc_ruf = '';
+			$dmac_rf = '';
+			$dmac_rua = '';
+			$dmac_ruf = '';
+			// browse through data
+			$temp = explode('; ', $old_data);
+			foreach ($temp as $part) {
+				if (preg_match("/^p=/", $part)) $dmarc_policy = str_replace('p=', '', $part);
+				if (preg_match("/^rua=/", $part)) $dmarc_rua = str_replace('rua=mailto:', '', $part).' ';
+				if (preg_match("/^ruf=/", $part)) $dmarc_ruf = str_replace('ruf=mailto:', '', $part).' ';
+				if (preg_match("/^fo:/", $part)) $dmarc_fo = str_replace('fo:', '', $part);
+				if (preg_match("/^adkim=/", $part)) $dmarc_adkim = str_replace('adkim=', '', $part);
+				if (preg_match("/^aspf=/", $part)) $dmarc_aspf = str_replace('aspf=', '', $part);
+				if (preg_match("/^rf=/", $part)) $dmarc_rf = str_replace('rf=', '', $part);
+				if (preg_match("/^(afrf:iodef|iodef:afrf)$/s", $dmarc_rf)) $dmarc_rf = str_replace(':', ' ', $dmarc_rf);
+				if (preg_match("/^pct=/", $part)) $dmarc_pct = str_replace('pct=', '', $part);
+				if (preg_match("/^ri=/", $part)) $dmarc_ri = str_replace('ri=', '', $part);
+			}
+		} 
+
+		//set html-values
+		$app->tpl->setVar('domain', $domain_name);
+
+		//create dmarc-policy-list
+		$dmarc_policy_value = array( 
+			'none' => 'dmarc_policy_none_txt',
+			'quarantine' => 'dmarc_policy_quarantine_txt',
+			'reject' => 'dmarc_policy_reject_txt',
+		);
+		$dmarc_policy_list='';
+		foreach($dmarc_policy_value as $value => $txt) {
+			$selected = @($dmarc_policy == $value)?' selected':'';
+			$dmarc_policy_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n";
+		}
+		$app->tpl->setVar('dmarc_policy', $dmarc_policy_list);
+
+		if (!empty($dmarc_rua)) $app->tpl->setVar("dmarc_rua", $dmarc_rua);
+
+		if (!empty($dmarc_ruf)) $app->tpl->setVar("dmarc_ruf", $dmarc_ruf);
+
+		//set dmarc-fo-options
+		$temp = explode(':', $dmarc_fo);
+		if (is_array($temp))
+			foreach ($temp as $fo => $value) $app->tpl->setVar("dmarc_fo".$value, 'CHECKED');
+		else
+			$app->tpl->setVar("dmarc_fo0", 'CHECKED');
+
+		unset($temp);
+
+		//create dmarc-adkim-list
+		$dmarc_adkim_value = array( 
+			'r' => 'dmarc_adkim_r_txt',
+			's' => 'dmarc_adkim_s_txt',
+		);
+		$dmarc_adkim_list='';
+		foreach($dmarc_adkim_value as $value => $txt) {
+			$selected = @($dmarc_adkim == $value)?' selected':'';
+			$dmarc_adkim_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n";
+		}
+		$app->tpl->setVar('dmarc_adkim', $dmarc_adkim_list);
+
+		//create dmarc-aspf-list
+		$dmarc_aspf_value = array( 
+			'r' => 'dmarc_aspf_r_txt',
+			's' => 'dmarc_aspf_s_txt',
+		);
+		$dmarc_aspf_list='';
+		foreach($dmarc_aspf_value as $value => $txt) {
+			$selected = @($dmarc_aspf == $value)?' selected':'';
+			$dmarc_aspf_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n";
+		}
+		$app->tpl->setVar('dmarc_aspf', $dmarc_aspf_list);
+
+		if ( strpos($dmarc_rf, 'afrf') !== false ) $app->tpl->setVar("dmarc_rf_afrf", 'CHECKED');
+		if ( strpos($dmarc_rf, 'iodef') !== false ) $app->tpl->setVar("dmarc_rf_iodef", 'CHECKED');
+
+		$app->tpl->setVar("dmarc_pct", $dmarc_pct);
+
+		$app->tpl->setVar("dmarc_ri", $dmarc_ri);
+
+		//create dmarc-sp-list
+		$dmarc_sp_value = array( 
+			'same' => 'dmarc_sp_same_txt',
+			'none' => 'dmarc_sp_none_txt',
+			'quarantine' => 'dmarc_sp_quarantine_txt',
+			'reject' => 'dmarc_sp_reject_txt',
+		);
+		$dmarc_sp_list='';
+		foreach($dmarc_sp_value as $value => $txt) {
+			$selected = @($dmarc_sp == $value)?' selected':'';
+			$dmarc_sp_list .= "<option value='$value'$selected>".$app->tform->wordbook[$txt]."</option>\r\n";
+		}
+		$app->tpl->setVar('dmarc_sp', $dmarc_sp_list);
+
+		parent::onShowEnd();
+
+	}
+
+	function onSubmit() {
+		global $app, $conf;
+
+		// Get the parent soa record of the domain
+		$soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND ?", $_POST['zone'], $app->tform->getAuthSQL('r'));
+
+		// Check if Domain belongs to user
+		if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"];
+
+		// Check the client limits, if user is not the admin
+		if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin
+			// Get the limits of the client
+			$client_group_id = intval($_SESSION["s"]["user"]["default_group"]);
+			$client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+
+			// Check if the user may add another mailbox.
+			if($this->id == 0 && $client["limit_dns_record"] >= 0) {
+				$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id);
+				if($tmp["number"] >= $client["limit_dns_record"]) {
+					$app->error($app->tform->wordbook["limit_dns_record_txt"]);
+				}
+			}
+		} // end if user is not admin
+
+		$domain_name = rtrim($soa['origin'], '.');
+		// DMARC requieres at lest a spf OR dkim-record
+		// abort if more than 1 active spf-records (backward-compatibility)
+		$sql = "SELECT * FROM dns_rr WHERE name = ? AND type='TXT' AND data like 'v=spf1%' AND active='Y'";
+		$temp = $app->db->queryAllRecords($sql, $domain_name.'.');
+		if (is_array($temp[1])) {
+			if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+			$app->tform->errorMessage .= $app->tform->wordbook['dmarc_more_spf_txt'].$email;
+		}
+
+		$sql = "SELECT *  FROM dns_rr WHERE name LIKE ? AND type='TXT' AND active = 'Y' AND (data LIKE 'v=DKIM1;%' OR data LIKE 'v=spf1%')";
+		$temp = $app->db->queryAllRecords($sql, '%._domainkey.'.$domain_name.'.');
+		if (empty($temp)) {
+			if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+			$app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_dkim_spf_txt'].$email;
+		}
+		unset($temp);
+		//TODO: should DMARC requiere DKIM and SPF to be valid? This breaks draft-kucherawy-dmarc-base-07 but makes much more sense
+/*
+		// DMARC requieres at least one active dkim-record...
+		$sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND active='Y'";
+		$temp = $app->db->queryOneRecord($sql, '%._domainkey.'.$domain_name.'.');
+		if (!is_array($temp)) {
+			if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+			$app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_dkim_txt'].$email;
+		}
+		unset($temp);
+
+		// ... and dkim-signed mails to allow "policy != none"
+		$sql = "SELECT * FROM mail_domain WHERE domain = '".$app->db->quote($domain_name)."'";
+		$temp = $app->db->queryOneRecord($sql);
+		if ($temp['dkim'] != 'y' && $this->dataRecord['dmarc_policy'] != 'none') {
+			if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+			$app->tform->errorMessage .= $app->tform->wordbook['dmarc_policy_error_txt'].$email;
+		}
+		unset($temp);
+
+		// DMARC requieres an active spf-record
+		$sql = "SELECT * FROM dns_rr WHERE name = ? AND type='TXT' AND data like 'v=spf1%' AND active='Y'";
+		$temp = $app->db->queryAllRecords($sql, $domain_name.'.');
+		// abort if more than 1 active spf-records (backward-compatibility)
+		if (is_array($temp[1])) {
+			if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+			$app->tform->errorMessage .= $app->tform->wordbook['dmarc_more_spf_txt'].$email;
+		}
+		if (empty($temp)) {
+			if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+			$app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_spf_txt'].$email;
+		}
+		unset($temp);
+*/
+		//validate dmarc_pct
+		$this->dataRecord['dmarc_pct'] = $app->functions->intval($this->dataRecord['dmarc_pct']);
+		if ($this->dataRecord['dmarc_pct'] < 0) $this->dataRecord['dmarc_pct'] = 0;
+		if ($this->dataRecord['dmarc_pct'] > 100) $this->dataRecord['dmarc_pct'] = 100;
+		
+		//create dmarc-record
+		$dmarc_record[] = 'p='.$this->dataRecord['dmarc_policy'];
+
+		/* TODO: 
+		draft-kucherawy-dmarc-base-07 allows multiple rua and ruf-entries
+		*/
+		$dmarc_rua = trim($this->dataRecord['dmarc_rua']);
+		if (!empty($dmarc_rua)) {
+			if (!filter_var($dmarc_rua, FILTER_VALIDATE_EMAIL)) {
+				if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+ 				$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].$dmarc_rua;
+			} else {
+				/* TODO: 
+				allow an external report-address. this requieres changes in a remote zone.
+				*/
+				$mail_domain = explode('@', $dmarc_rua);
+				if ($mail_domain[1] != $domain_name) {
+					if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+					$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_domain_txt'].$dmarc_ruf.' in '.$dmarc_ruf;
+				} else {
+					$dmarc_record[] = 'rua=mailto:'.$dmarc_rua;
+				}
+			}
+		}
+		unset ($dmarc_rua);
+		unset ($mail_domain);
+
+		$dmarc_ruf = trim($this->dataRecord['dmarc_ruf']);
+		if (!empty($dmarc_ruf)) {
+			if (!filter_var($dmarc_ruf, FILTER_VALIDATE_EMAIL)) {
+				if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+ 				$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].$dmarc_ruf;
+			} else {
+				/* TODO: 
+				allow an external report-address. this requieres changes in a remote zone.
+				*/
+				$mail_domain[1] = explode('@', $dmarc_ruf);
+				if ($mail_domain != $domain_name) {
+					if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
+ 					$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_domain_txt'].$dmarc_ruf.' in '.$dmarc_ruf;
+				} else {
+					$dmarc_record[] = 'ruf=mailto:'.$dmarc_ruf;
+				}
+			}
+		}
+		unset ($dmarc_ruf);
+		unset ($mail_domain);	
+		
+		$fo_rec = '';
+		if (isset($this->dataRecord['dmarc_fo0'])) $fo_rec[] = '0';
+		if (isset($this->dataRecord['dmarc_fo1'])) $fo_rec[] = '1';
+		if (isset($this->dataRecord['dmarc_fod'])) $fo_rec[] = 'd';
+		if (isset($this->dataRecord['dmarc_fos'])) $fo_rec[] = 's';
+		if (is_array($fo_rec) && !empty($fo_rec)) 
+			$dmarc_record[] = 'fo:'.implode(':', $fo_rec);
+
+		if (!empty($this->dataRecord['dmarc_adkim']) && $this->dataRecord['dmarc_adkim'] != 'r' )
+			$dmarc_record[] = 'adkim='.$this->dataRecord['dmarc_adkim'];
+
+		if (!empty($this->dataRecord['dmarc_aspf']) && $this->dataRecord['dmarc_aspf'] != 'r' )
+			$dmarc_record[] = 'aspf='.$this->dataRecord['dmarc_aspf'];
+
+		if (isset($this->dataRecord['dmarc_rf_afrf']) && isset($this->dataRecord['dmarc_rf_iodef']))
+			$dmarc_record[] = 'rf=afrf:iodef';
+		else {
+			 if (isset($this->dataRecord['dmarc_rf_iodef']))
+				$dmarc_record[] = 'rf=iodef';
+		}
+		unset($fo_rec);
+
+		if (!empty($this->dataRecord['dmarc_pct']) && $this->dataRecord['dmarc_pct'] != 100)
+			$dmarc_record[] = 'pct='.$this->dataRecord['dmarc_pct'];
+
+		if (!empty($this->dataRecord['dmarc_ri']) && $this->dataRecord['dmarc_ri'] != '86400')
+			$dmarc_record[] = 'ri='.$this->dataRecord['dmarc_ri'];
+
+		if (!empty($this->dataRecord['dmarc_sp']) && $this->dataRecord['dmarc_sp'] != 'same')
+			$dmarc_record[] = 'sp='.$this->dataRecord['dmarc_sp'];
+
+		$temp = implode('; ', $dmarc_record);
+		if (!empty($temp))
+			$this->dataRecord['data'] = 'v=DMARC1; ' . $temp;
+		else $app->tform->errorMessage .= $app->tform->wordbook["dmarc_empty_txt"];
+
+		$this->dataRecord['name'] = '_dmarc.' . $soa['origin'];
+		if (isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'Y';
+		
+		// Set the server ID of the rr record to the same server ID as the parent record.
+		$this->dataRecord["server_id"] = $soa["server_id"];
+
+		// Update the serial number  and timestamp of the RR record
+		$soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ?", $this->id);
+		$this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]);
+		$this->dataRecord["stamp"] = date('Y-m-d H:i:s');
+
+		// always update an existing entry
+		$check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data LIKE 'v=DMARC1%' AND name = ?", $this->dataRecord['zone'], $this->dataRecord['type'], $this->dataRecord['name']);
+		$this->id = $check['id'];
+		if (!isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'N';
+
+		parent::onSubmit();
+	}
+
+	function onAfterInsert() {
+		global $app, $conf;
+
+		//* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record
+		$soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($this->dataRecord["zone"]), $app->tform->getAuthSQL('r'));
+		$app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id);
+
+		//* Update the serial number of the SOA record
+		$soa_id = $app->functions->intval($_POST["zone"]);
+		$serial = $app->validate_dns->increase_serial($soa["serial"]);
+		$app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id);
+
+	}
+
+	function onAfterUpdate() {
+		global $app, $conf;
+
+		//* Update the serial number of the SOA record
+		$soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ? AND ?", $app->functions->intval($this->dataRecord["zone"]), $app->tform->getAuthSQL('r'));
+		$soa_id = $app->functions->intval($_POST["zone"]);
+		$serial = $app->validate_dns->increase_serial($soa["serial"]);
+		$app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id);
+	}
+
+}
+
+$page = new page_action;
+$page->onLoad();
+
+?>
diff --git a/interface/web/dns/form/dns_dmarc.tform.php b/interface/web/dns/form/dns_dmarc.tform.php
new file mode 100644
index 0000000000000000000000000000000000000000..a1ecaa40c80ccffe2050d6a45a20fd46e3b0e446
--- /dev/null
+++ b/interface/web/dns/form/dns_dmarc.tform.php
@@ -0,0 +1,164 @@
+<?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).
+
+
+*/
+global $app;
+
+$form["title"]    = "DNS DMARC Record";
+$form["description"]  = "";
+$form["name"]    = "dns_dmarc";
+$form["action"]   = "dns_dmarc_edit.php";
+$form["db_table"]  = "dns_rr";
+$form["db_table_idx"] = "id";
+$form["db_history"]  = "yes";
+$form["tab_default"] = "dns";
+$form["list_default"] = "dns_a_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"]['dns'] = array (
+	'title'  => "DNS DMARC",
+	'width'  => 100,
+	'template'  => "templates/dns_dmarc_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'server_id' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'zone' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => @$app->functions->intval($_REQUEST["zone"]),
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'name' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'filters'   => array( 0 => array( 'event' => 'SAVE',
+					'type' => 'IDNTOASCII'),
+				1 => array( 'event' => 'SHOW',
+					'type' => 'IDNTOUTF8'),
+				2 => array( 'event' => 'SAVE',
+					'type' => 'TOLOWER')
+			),
+			'validators' => array (  0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\.\-\_]{0,255}$/',
+					'errmsg'=> 'name_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'type' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => 'TXT',
+			'value'  => '',
+			'width'  => '5',
+			'maxlength' => '5'
+		),
+		'data' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		/*
+		'aux' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'TEXT',
+			'default'	=> '0',
+			'value'		=> '',
+			'width'		=> '10',
+			'maxlength'	=> '10'
+		),
+		*/
+		'ttl' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'validators' => array (  0 => array ( 'type' => 'RANGE',
+					'range' => '60:',
+					'errmsg'=> 'ttl_range_error'),
+			),
+			'default' => '3600',
+			'value'  => '',
+			'width'  => '10',
+			'maxlength' => '10'
+		),
+		'active' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'Y',
+		),
+		'stamp' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'serial' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '10',
+			'maxlength' => '10'
+		),
+		//#################################
+		// End Datatable fields
+		//#################################
+	)
+);
+
+
+
+?>
diff --git a/interface/web/dns/lib/lang/ar_dns_dmarc.lng b/interface/web/dns/lib/lang/ar_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/ar_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/bg_dns_dmarc.lng b/interface/web/dns/lib/lang/bg_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/bg_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/de_dns_dmarc.lng b/interface/web/dns/lib/lang/de_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/de_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/el_dns_dmarc.lng b/interface/web/dns/lib/lang/el_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/el_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/en_dns_dmarc.lng b/interface/web/dns/lib/lang/en_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/en_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/es_dns_dmarc.lng b/interface/web/dns/lib/lang/es_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/es_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/fi_dns_dmarc.lng b/interface/web/dns/lib/lang/fi_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/fi_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/fr_dns_dmarc.lng b/interface/web/dns/lib/lang/fr_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/fr_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/hr_dns_dmarc.lng b/interface/web/dns/lib/lang/hr_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/hr_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/hu_dns_dmarc.lng b/interface/web/dns/lib/lang/hu_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/hu_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/id_dns_dmarc.lng b/interface/web/dns/lib/lang/id_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/id_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/it_dns_dmarc.lng b/interface/web/dns/lib/lang/it_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/it_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/ja_dns_dmarc.lng b/interface/web/dns/lib/lang/ja_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/ja_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/nl_dns_dmarc.lng b/interface/web/dns/lib/lang/nl_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/nl_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/pl_dns_dmarc.lng b/interface/web/dns/lib/lang/pl_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/pl_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/pt_dns_dmarc.lng b/interface/web/dns/lib/lang/pt_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/pt_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/ro_dns_dmarc.lng b/interface/web/dns/lib/lang/ro_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/ro_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/ru_dns_dmarc.lng b/interface/web/dns/lib/lang/ru_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/ru_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/se_dns_dmarc.lng b/interface/web/dns/lib/lang/se_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/se_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/sk_dns_dmarc.lng b/interface/web/dns/lib/lang/sk_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/sk_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/tr_dns_dmarc.lng b/interface/web/dns/lib/lang/tr_dns_dmarc.lng
new file mode 100644
index 0000000000000000000000000000000000000000..ac7526663d224fef3f80507a0ed2bf242e1bb8b7
--- /dev/null
+++ b/interface/web/dns/lib/lang/tr_dns_dmarc.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 repersents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/templates/dns_dmarc_edit.htm b/interface/web/dns/templates/dns_dmarc_edit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0f1f5b49e910d29c74fb31c54587a1bef785ab89
--- /dev/null
+++ b/interface/web/dns/templates/dns_dmarc_edit.htm
@@ -0,0 +1,100 @@
+<h2><tmpl_var name="list_head_txt"></h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_dns_txt">
+    <div class="pnl_formsarea">
+        <fieldset class="inlineLabels">
+            <div class="ctrlHolder">
+                <label for="domain">{tmpl_var name='domain_txt'}</label>
+				<input name="domain" id="domain" value="{tmpl_var name='domain'}" readonly size="30" maxlength="255" type="text" class="textInput" />
+            </div>
+            <div class="ctrlHolder">
+            	<label for="dmarc_policy">{tmpl_var name='dmarc_policy_txt'}</label>
+                <select name="dmarc_policy" id="dmarc_policy" class="selectInput">
+                	{tmpl_var name='dmarc_policy'}
+                </select>
+				{tmpl_var name='dmarc_policy_note_txt'}
+            </div>
+			<div class="ctrlHolder">
+				<label for="dmarc_rua">{tmpl_var name='dmarc_rua_txt'}</label>
+				<input name="dmarc_rua" id="dmarc_rua" value="{tmpl_var name='dmarc_rua'}" size="20" maxlength="63" type="text" class="textInput" />
+				{tmpl_var name='dmarc_rua_note_txt'}
+			</div>
+			<div class="ctrlHolder">
+				<label for="dmarc_ruf">{tmpl_var name='dmarc_ruf_txt'}</label>
+				<input name="dmarc_ruf" id="dmarc_ruf" value="{tmpl_var name='dmarc_ruf'}" size="20" maxlength="63" type="text" class="textInput" />
+				{tmpl_var name='dmarc_ruf_note_txt'}
+			</div>
+            <div class="ctrlHolder">
+                <p class="label">{tmpl_var name='dmarc_fo_txt'}</p>
+                <div class="multiField">
+					<input type="checkbox" value="1" id="dmarc_fo0" name="dmarc_fo0" {tmpl_var name='dmarc_fo0'}/>{tmpl_var name='dmarc_fo0_txt'}<br>
+					<input type="checkbox" value="1" id="dmarc_fo1" name="dmarc_fo1" {tmpl_var name='dmarc_fo1'}/>{tmpl_var name='dmarc_fo1_txt'}<br>
+					<input type="checkbox" value="1" id="dmarc_fod" name="dmarc_fod" {tmpl_var name='dmarc_fod'}/>{tmpl_var name='dmarc_fod_txt'}<br>
+					<input type="checkbox" value="1" id="dmarc_fos" name="dmarc_fos" {tmpl_var name='dmarc_fos'}/>{tmpl_var name='dmarc_fos_txt'}
+                </div>
+            </div>
+            <div class="ctrlHolder">
+            	<label for="dmarc_adkim">{tmpl_var name='dmarc_adkim_txt'}</label>
+                <select name="dmarc_adkim" id="dmarc_adkim" class="selectInput">
+                	{tmpl_var name='dmarc_adkim'}
+                </select>
+				{tmpl_var name='dmarc_adkim_note_txt'}
+            </div>
+            <div class="ctrlHolder">
+            	<label for="dmarc_aspf">{tmpl_var name='dmarc_aspf_txt'}</label>
+                <select name="dmarc_aspf" id="dmarc_aspf" class="selectInput">
+                	{tmpl_var name='dmarc_aspf'}
+                </select>
+				{tmpl_var name='dmarc_aspf_note_txt'}
+            </div>
+            <div class="ctrlHolder">
+                <p class="label">{tmpl_var name='dmarc_rf_txt'}</p>
+                <div class="multiField">
+					 <input type="checkbox" value="1" id=dmarc_rf_afrf" name="dmarc_rf_afrf" {tmpl_var name='dmarc_rf_afrf'}/>{tmpl_var name='dmarc_rf_afrf_txt'}<br>
+					<input type="checkbox" value="1" id="dmarc_rf_iodef" name="dmarc_rf_iodef" {tmpl_var name='dmarc_rf_iodef'}/>{tmpl_var name='dmarc_rf_iodef_txt'}
+                </div>
+            </div>
+			<div class="ctrlHolder">
+				<label for="dmarc_pct">{tmpl_var name='dmarc_pct_txt'}</label>
+				<input name="dmarc_pct" id="dmarc_pct" value="{tmpl_var name='dmarc_pct'}" size="20" maxlength="63" type="text" class="textInput" />
+				{tmpl_var name='dmarc_pct_note_txt'}
+			</div>
+			<div class="ctrlHolder">
+				<label for="dmarc_ri">{tmpl_var name='dmarc_ri_txt'}</label>
+				<input name="dmarc_ri" id="dmarc_ri" value="{tmpl_var name='dmarc_ri'}" size="20" maxlength="63" type="text" class="textInput" />
+				{tmpl_var name='dmarc_ri_note_txt'}
+			</div>
+            <div class="ctrlHolder">
+            	<label for="dmarc_sp">{tmpl_var name='dmarc_sp_txt'}</label>
+                <select name="dmarc_sp" id="dmarc_sp" class="selectInput">
+                	{tmpl_var name='dmarc_sp'}
+                </select>
+            </div>
+            <div class="ctrlHolder">
+                <label for="ttl">{tmpl_var name='ttl_txt'}</label>
+                <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" />
+            </div>
+
+            <div class="ctrlHolder">
+                <p class="label">{tmpl_var name='active_txt'}</p>
+                <div class="multiField">
+					<input type="checkbox" value="1" id="active" name="active" {tmpl_var name='active'}/>
+                </div>
+            </div>
+        </fieldset>
+            
+        <input type="hidden" name="id" value="{tmpl_var name='id'}">
+        <input type="hidden" name="zone" value="{tmpl_var name='zone'}" id="zone">
+        <input type="hidden" name="type" value="{tmpl_var name='type'}">
+        <input type="hidden" name="name" value="{tmpl_var name='name'}">
+            </div>
+            
+        <div class="buttonHolder buttons">
+            <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','dns/dns_dmarc_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
+            <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
+        </div>
+    </div>
+  
+</div>
+