|
@@ -10,9 +10,11 @@ define('state_optional', " <sup>2</sup>");
|
|
|
if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "admin"|| $_SESSION['mailcow_cc_role'] == "domainadmin")) {
|
|
|
|
|
|
$domains = mailbox('get', 'domains');
|
|
|
-foreach(mailbox('get', 'domains') as $dn) {
|
|
|
- $domains = array_merge($domains, mailbox('get', 'alias_domains', $dn));
|
|
|
+$alias_domains = array();
|
|
|
+foreach($domains as $dn) {
|
|
|
+ $alias_domains = array_merge($alias_domains, mailbox('get', 'alias_domains', $dn));
|
|
|
}
|
|
|
+$domains = array_merge($domains, $alias_domains);
|
|
|
|
|
|
if (isset($_GET['domain'])) {
|
|
|
if (is_valid_domain_name($_GET['domain'])) {
|
|
@@ -105,76 +107,80 @@ if ($_SESSION['mailcow_cc_role'] == "admin") {
|
|
|
'TLSA',
|
|
|
generate_tlsa_digest($autodiscover_config['smtp']['server'], 25, 1)
|
|
|
);
|
|
|
+ if (!in_array($domain, $alias_domains)) {
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$https_port.
|
|
|
+ '._tcp.'.$mailcow_hostname,
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($mailcow_hostname, $https_port)
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['pop3']['tlsport'].
|
|
|
+ '._tcp.'.$autodiscover_config['pop3']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['pop3']['server'], $autodiscover_config['pop3']['tlsport'], 1)
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['imap']['tlsport'].
|
|
|
+ '._tcp.'.$autodiscover_config['imap']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['imap']['server'], $autodiscover_config['imap']['tlsport'], 1)
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['smtp']['port'].
|
|
|
+ '._tcp.'.$autodiscover_config['smtp']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['smtp']['server'], $autodiscover_config['smtp']['port'])
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['smtp']['tlsport'].
|
|
|
+ '._tcp.'.$autodiscover_config['smtp']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['smtp']['server'], $autodiscover_config['smtp']['tlsport'], 1)
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['imap']['port'].
|
|
|
+ '._tcp.'.$autodiscover_config['imap']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['imap']['server'], $autodiscover_config['imap']['port'])
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['pop3']['port'].
|
|
|
+ '._tcp.'.$autodiscover_config['pop3']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['pop3']['server'], $autodiscover_config['pop3']['port'])
|
|
|
+ );
|
|
|
+ $records[] = array(
|
|
|
+ '_'.$autodiscover_config['sieve']['port'].
|
|
|
+ '._tcp.'.$autodiscover_config['sieve']['server'],
|
|
|
+ 'TLSA',
|
|
|
+ generate_tlsa_digest($autodiscover_config['sieve']['server'], $autodiscover_config['sieve']['port'], 1)
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+$records[] = array(
|
|
|
+ $domain,
|
|
|
+ 'MX',
|
|
|
+ $mailcow_hostname
|
|
|
+);
|
|
|
+if (!in_array($domain, $alias_domains)) {
|
|
|
$records[] = array(
|
|
|
- '_'.$https_port.
|
|
|
- '._tcp.'.$mailcow_hostname,
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($mailcow_hostname, $https_port)
|
|
|
- );
|
|
|
- $records[] = array(
|
|
|
- '_'.$autodiscover_config['pop3']['tlsport'].
|
|
|
- '._tcp.'.$autodiscover_config['pop3']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['pop3']['server'], $autodiscover_config['pop3']['tlsport'], 1)
|
|
|
- );
|
|
|
- $records[] = array(
|
|
|
- '_'.$autodiscover_config['imap']['tlsport'].
|
|
|
- '._tcp.'.$autodiscover_config['imap']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['imap']['server'], $autodiscover_config['imap']['tlsport'], 1)
|
|
|
- );
|
|
|
- $records[] = array(
|
|
|
- '_'.$autodiscover_config['smtp']['port'].
|
|
|
- '._tcp.'.$autodiscover_config['smtp']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['smtp']['server'], $autodiscover_config['smtp']['port'])
|
|
|
- );
|
|
|
- $records[] = array(
|
|
|
- '_'.$autodiscover_config['smtp']['tlsport'].
|
|
|
- '._tcp.'.$autodiscover_config['smtp']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['smtp']['server'], $autodiscover_config['smtp']['tlsport'], 1)
|
|
|
- );
|
|
|
- $records[] = array(
|
|
|
- '_'.$autodiscover_config['imap']['port'].
|
|
|
- '._tcp.'.$autodiscover_config['imap']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['imap']['server'], $autodiscover_config['imap']['port'])
|
|
|
+ 'autodiscover.'.$domain,
|
|
|
+ 'CNAME',
|
|
|
+ $mailcow_hostname
|
|
|
);
|
|
|
$records[] = array(
|
|
|
- '_'.$autodiscover_config['pop3']['port'].
|
|
|
- '._tcp.'.$autodiscover_config['pop3']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['pop3']['server'], $autodiscover_config['pop3']['port'])
|
|
|
+ '_autodiscover._tcp.'.$domain,
|
|
|
+ 'SRV',
|
|
|
+ $mailcow_hostname.
|
|
|
+ ' '.$https_port
|
|
|
);
|
|
|
$records[] = array(
|
|
|
- '_'.$autodiscover_config['sieve']['port'].
|
|
|
- '._tcp.'.$autodiscover_config['sieve']['server'],
|
|
|
- 'TLSA',
|
|
|
- generate_tlsa_digest($autodiscover_config['sieve']['server'], $autodiscover_config['sieve']['port'], 1)
|
|
|
+ 'autoconfig.'.$domain,
|
|
|
+ 'CNAME',
|
|
|
+ $mailcow_hostname
|
|
|
);
|
|
|
}
|
|
|
-$records[] = array(
|
|
|
- $domain,
|
|
|
- 'MX',
|
|
|
- $mailcow_hostname
|
|
|
-);
|
|
|
-$records[] = array(
|
|
|
- 'autodiscover.'.$domain,
|
|
|
- 'CNAME',
|
|
|
- $mailcow_hostname
|
|
|
-);
|
|
|
-$records[] = array(
|
|
|
- '_autodiscover._tcp.'.$domain,
|
|
|
- 'SRV',
|
|
|
- $mailcow_hostname.
|
|
|
- ' '.$https_port
|
|
|
-);
|
|
|
-$records[] = array(
|
|
|
- 'autoconfig.'.$domain,
|
|
|
- 'CNAME',
|
|
|
- $mailcow_hostname
|
|
|
-);
|
|
|
$records[] = array(
|
|
|
$domain,
|
|
|
'TXT',
|
|
@@ -195,74 +201,76 @@ if (!empty($dkim = dkim('details', $domain))) {
|
|
|
$dkim['dkim_txt']
|
|
|
);
|
|
|
}
|
|
|
-$current_records = dns_get_record('_pop3._tcp.' . $domain, DNS_SRV);
|
|
|
-if (count($current_records) == 0 || $current_records[0]['target'] != '') {
|
|
|
- if ($autodiscover_config['pop3']['tlsport'] != '110') {
|
|
|
+if (!in_array($domain, $alias_domains)) {
|
|
|
+ $current_records = dns_get_record('_pop3._tcp.' . $domain, DNS_SRV);
|
|
|
+ if (count($current_records) == 0 || $current_records[0]['target'] != '') {
|
|
|
+ if ($autodiscover_config['pop3']['tlsport'] != '110') {
|
|
|
+ $records[] = array(
|
|
|
+ '_pop3._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['tlsport']
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
$records[] = array(
|
|
|
'_pop3._tcp.' . $domain,
|
|
|
'SRV',
|
|
|
- $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['tlsport']
|
|
|
+ '. 0'
|
|
|
);
|
|
|
}
|
|
|
-}
|
|
|
-else {
|
|
|
- $records[] = array(
|
|
|
- '_pop3._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- '. 0'
|
|
|
- );
|
|
|
-}
|
|
|
-$current_records = dns_get_record('_pop3s._tcp.' . $domain, DNS_SRV);
|
|
|
-if (count($current_records) == 0 || $current_records[0]['target'] != '') {
|
|
|
- if ($autodiscover_config['pop3']['port'] != '995') {
|
|
|
+ $current_records = dns_get_record('_pop3s._tcp.' . $domain, DNS_SRV);
|
|
|
+ if (count($current_records) == 0 || $current_records[0]['target'] != '') {
|
|
|
+ if ($autodiscover_config['pop3']['port'] != '995') {
|
|
|
+ $records[] = array(
|
|
|
+ '_pop3s._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['port']
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
$records[] = array(
|
|
|
'_pop3s._tcp.' . $domain,
|
|
|
'SRV',
|
|
|
- $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['port']
|
|
|
+ '. 0'
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($autodiscover_config['imap']['tlsport'] != '143') {
|
|
|
+ $records[] = array(
|
|
|
+ '_imap._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['tlsport']
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($autodiscover_config['imap']['port'] != '993') {
|
|
|
+ $records[] = array(
|
|
|
+ '_imaps._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['port']
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($autodiscover_config['smtp']['tlsport'] != '587') {
|
|
|
+ $records[] = array(
|
|
|
+ '_submission._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['tlsport']
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($autodiscover_config['smtp']['port'] != '465') {
|
|
|
+ $records[] = array(
|
|
|
+ '_smtps._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['port']
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($autodiscover_config['sieve']['port'] != '4190') {
|
|
|
+ $records[] = array(
|
|
|
+ '_sieve._tcp.' . $domain,
|
|
|
+ 'SRV',
|
|
|
+ $autodiscover_config['sieve']['server'] . ' ' . $autodiscover_config['sieve']['port']
|
|
|
);
|
|
|
}
|
|
|
-}
|
|
|
-else {
|
|
|
- $records[] = array(
|
|
|
- '_pop3s._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- '. 0'
|
|
|
- );
|
|
|
-}
|
|
|
-if ($autodiscover_config['imap']['tlsport'] != '143') {
|
|
|
- $records[] = array(
|
|
|
- '_imap._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['tlsport']
|
|
|
- );
|
|
|
-}
|
|
|
-if ($autodiscover_config['imap']['port'] != '993') {
|
|
|
- $records[] = array(
|
|
|
- '_imaps._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['port']
|
|
|
- );
|
|
|
-}
|
|
|
-if ($autodiscover_config['smtp']['tlsport'] != '587') {
|
|
|
- $records[] = array(
|
|
|
- '_submission._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['tlsport']
|
|
|
- );
|
|
|
-}
|
|
|
-if ($autodiscover_config['smtp']['port'] != '465') {
|
|
|
- $records[] = array(
|
|
|
- '_smtps._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['port']
|
|
|
- );
|
|
|
-}
|
|
|
-if ($autodiscover_config['sieve']['port'] != '4190') {
|
|
|
- $records[] = array(
|
|
|
- '_sieve._tcp.' . $domain,
|
|
|
- 'SRV',
|
|
|
- $autodiscover_config['sieve']['server'] . ' ' . $autodiscover_config['sieve']['port']
|
|
|
- );
|
|
|
}
|
|
|
|
|
|
$record_types = array(
|