0db50ef1cf33c258477843a0fe3a72f22b529f01
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

1) <?php
2) /*
3) This file belongs to the Webinterface of schokokeks.org Hosting
4) 
5) Written by schokokeks.org Hosting, namely
6)   Bernd Wurst <bernd@schokokeks.org>
7)   Hanno Böck <hanno@schokokeks.org>
8) 
9) This code is published under a 0BSD license.
10) 
11) Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
12) */
13) 
14) require_once('inc/debug.php');
15) require_once('inc/icons.php');
16) 
17) require_once('class/domain.php');
18) require_once('domains.php');
19) 
20) require_role([ROLE_CUSTOMER, ROLE_SYSTEMUSER]);
21) 
22) $dom = null;
23) if (isset($_REQUEST['dom'])) {
24)     $dom = new Domain((int) $_REQUEST['dom']);
25) } else {
26)     system_failure("Keine Domain angegeben");
27) }
28) if (have_role(ROLE_CUSTOMER)) {
29)     $dom->ensure_customerdomain();
30) } else {
31)     $dom->ensure_userdomain();
32) }
33) 
34) title("E-Mail-Einstellungen für {$dom->fqdn}");
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst authored 1 year ago

35) $section = 'domains_domains';
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

36) 
37) if (!have_module('email')) {
38)     system_failure("email settings not available");
39) }
40) 
41) if ($dom->provider != 'terions') {
42)     $mxresult = dns_get_record($dom->fqdn, DNS_MX);
43)     $found = false;
44)     foreach ($mxresult as $mx) {
45)         if (substr_compare($mx['target'], config('masterdomain'), -strlen(config('masterdomain'))) === 0) {
46)             $found = true;
47)         }
48)     }
Hanno Böck Fix codingstyle

Hanno Böck authored 1 year ago

49)     if (!$found) {
50)         DEBUG('MX für ' . $dom->fqdn . ':');
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

51)         DEBUG($mxresult);
52)         warning('Bei dieser Domain ist der Mail-Empfang aktiviert, jedoch verweist das DNS-System scheinbar nicht auf unsere Anlagen. Wenn Sie keine E-Mails empfangen möchten, schalten Sie die Mail-Verarbeitung für diese Domain aus.');
53)     }
54) }
55) 
56) output('<p>Die Verarbeitung eingehender E-Mail kann bei schokokeks.org auf zwei unterschiedliche Weisen erfolgen.<p>
57) <ol><li>Sie können mit der <strong>Webinterface-Verwaltung</strong> einfache E-Mail-Konten erstellen, die ankommende E-Mails speichern oder weiterleiten.</li>
58) <li>Sie können die manuelle Verwaltung wählen, bei der Sie passende .courier-Dateien für den Empfang und manuelle POP3/IMAP-Konten für den Abruf selbst verwalten.</li></ol>
59) <p>Eine parallel Nutzung beider Verfahren mit der selben Domain ist nicht möglich. Wenn Sie eine Domain auf Webinterface-Verwaltung einrichten, dann werden eventuell vorhandene .courier-Dateien nicht mehr beachtet.</p>
60) <p>Der Mail-Empfang auf Subdomains muss grundsätzlich durch Administratoren eingerichtet und verändert werden.</p>');
61) 
62) output('<h4>Aktuelle Einstellung</h4>');
63) $setting = mail_setting($dom->id);
64) if ($setting == 'none') {
65)     output('<div class="error">E-Mail-Empfang abgeschaltet</div>
Hanno Böck Fix codingstyle

Hanno Böck authored 1 year ago

66)     <p>Aktuell ist der Empfang von E-Mail für die Domain <strong>' . $dom->fqdn . '</strong> ausgeschaltet.</p>
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

67)     <ul>
68)     <li>Die E-Mail-spezifischen DNS-Records wie z.B. MX, SPF, DKIM und Autoconfig werden nicht erstellt.</li>
69)     <li>Sie können keine Postfächer unter der Domain anlegen.</li>
70)     <li>Der Mail-Server wird E-Mails an diese Domain nicht annehmen.</li>
71)     </ul>');
72) } elseif ($setting == 'vmail') {
73)     output('<div class="success">E-Mail-Empfang eingeschaltet (Webinterface-Verwaltung)</div>
74)     <p>Aktuell können Sie Ihre Postfächer ganz einfach über unser Webinterface verwalten. Dies ist die Standardeinstellung.</p>
75)     <ul>
76)     <li>Nachrichten werden vom Server angenommen, sofern die zugehörige Adresse eingerichtet ist.</li>
77)     <li>Die DNS-Records (z.B. MX, SPF, DKIM und Autoconfig) werden erstellt, sofern Sie keinen dazu widersprüchlichen DNS-Record selbst angelegt haben.</li>
78)     <li>Um neue Postfächer und Weiterleitungen für diese Domain anzulegen, besuchen Sie bitte den Bereich "E-Mail" in diesem Webinterface.</li>
79)     </ul>');
80)     if (count_vmail($dom->id) > 0) {
81)         output('<p>So lange noch E-Mail-Adressen unter dieser Domain eingerichtet sind, können Sie diese Einstellung nicht ändern.</p>');
82)     }
83) } elseif ($setting == 'manual') {
84)     output('<div class="warning">E-Mail-Empfang aktiv (Manuelle Verwaltung)</div>
85)     <p>Für diese Domain müssen Sie selbst die passenden .courier-Dateien verwalten, damit die Mails zugestellt werden.</p>
86)     <ul>
87)     <li>Nachrichten werden vom Server angenommen, sofern die zugehörige Adresse eingerichtet ist.</li>
88)     <li>Die DNS-Records (z.B. MX, SPF, DKIM und Autoconfig) werden erstellt, sofern Sie keinen dazu widersprüchlichen DNS-Record selbst angelegt haben.</li>
89)     <li>Hilfestellung zu den damit verbundenen Möglichkeiten erhalten Sie <a href="https://wiki.schokokeks.org/E-Mail/Manuelle_Konfiguration">in unserem Wiki</a></li>
90)     </ul>');
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst authored 1 year ago

91) } elseif ($setting == 'nomail') {
92)     output('<div class="error">E-Mail-Empfang abgeschaltet und <strong>unterbunden</strong></div>
Bernd Wurst Nomail als checkbox

Bernd Wurst authored 1 year ago

93)     <p>Aktuell ist der Empfang von E-Mail für die Domain <strong>' . $dom->fqdn . '</strong> ausgeschaltet und es wird mittels spezieller DNS-Records dafür gesorgt, dass E-Mails dieser Domain grundsätzlich als Spam eingestuft werden.</p>
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst authored 1 year ago

94)     <ul>
95)     <li>Es wird ein leerer MX-Record erstellt.</li>
Bernd Wurst Nomail als checkbox

Bernd Wurst authored 1 year ago

96)     <li>Der SPF- und der DMARC-Record werden jeweils auf "immer abweisen" gesetzt.</li>
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst authored 1 year ago

97)     <li>Die DNS-Records für DKIM und Autoconfig werden nicht erstellt.</li>
98)     <li>Sie können keine Postfächer unter der Domain anlegen.</li>
99)     <li>Der Mail-Server wird E-Mails an diese Domain nicht annehmen.</li>
100)     </ul>');
Bernd Wurst Nomail als checkbox

Bernd Wurst authored 1 year ago

101) } else {
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

102)     system_failure('unbekannter Zustand der Domain');
103) }
104) 
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst authored 1 year ago

105) output('<p>' . internal_link('../email/domains', 'Änderungen an der Mail-Verarbeitung vornehmen') . '</p>');
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

106) 
107)