dee22afd94588ded04d1257fe40667f6b6df0af0
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}");
35) $section = 'domains_email';
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>');
Hanno Böck Fix codingstyle

Hanno Böck authored 1 year ago

72)     addnew('email_save', 'Mail-Empfang einschalten (Webinterface-Verwaltung)', "dom=" . $dom->id . "&mail=vmail");
73)     addnew('email_save', 'Mail-Empfang einschalten (Manuelle Verwaltung)', "dom=" . $dom->id . "&mail=manual", 'class="grey"');
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

74) } elseif ($setting == 'vmail') {
75)     output('<div class="success">E-Mail-Empfang eingeschaltet (Webinterface-Verwaltung)</div>
76)     <p>Aktuell können Sie Ihre Postfächer ganz einfach über unser Webinterface verwalten. Dies ist die Standardeinstellung.</p>
77)     <ul>
78)     <li>Nachrichten werden vom Server angenommen, sofern die zugehörige Adresse eingerichtet ist.</li>
79)     <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>
80)     <li>Um neue Postfächer und Weiterleitungen für diese Domain anzulegen, besuchen Sie bitte den Bereich "E-Mail" in diesem Webinterface.</li>
81)     </ul>');
82)     if (count_vmail($dom->id) > 0) {
83)         output('<p>So lange noch E-Mail-Adressen unter dieser Domain eingerichtet sind, können Sie diese Einstellung nicht ändern.</p>');
84)     } else {
Hanno Böck Fix codingstyle

Hanno Böck authored 1 year ago

85)         output('<p class="delete">' . internal_link("email_save", "Mail-Empfang für diese Domain ausschalten", "dom=" . $dom->id . '&mail=none') . '</p>');
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

86)     }
87) } elseif ($setting == 'manual') {
88)     output('<div class="warning">E-Mail-Empfang aktiv (Manuelle Verwaltung)</div>
89)     <p>Für diese Domain müssen Sie selbst die passenden .courier-Dateien verwalten, damit die Mails zugestellt werden.</p>
90)     <ul>
91)     <li>Nachrichten werden vom Server angenommen, sofern die zugehörige Adresse eingerichtet ist.</li>
92)     <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>
93)     <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>
94)     </ul>');
Hanno Böck Fix codingstyle

Hanno Böck authored 1 year ago

95)     output('<p class="delete">' . internal_link("email_save", "Mail-Empfang für diese Domain ausschalten", "dom=" . $dom->id . '&mail=none') . '</p>');
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

96) } else {
97)     system_failure('unbekannter Zustand der Domain');
98) }
99) 
100) 
101) 
102) 
103) 
104)