0f4e83a18999053f547adf7a2c9129717f71833e
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>');
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst 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 {
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst 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>');
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst 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>');
96) } elseif ($setting == 'nomail') {
97)     output('<div class="error">E-Mail-Empfang abgeschaltet und <strong>unterbunden</strong></div>
98)     <p>Aktuell ist der Empfang von E-Mail für die Domain <strong>' . $dom->fqdn . '</strong> ausgeschaltet und es wird mittels spezielle DNS-Records dafür gesorgt, dass E-Mails dieser Domain grundsätzlich als Spam eingestuft werden.</p>
99)     <ul>
100)     <li>Es wird ein leerer MX-Record erstellt.</li>
101)     <li>Der SPF- und der DMARC-Record werden auf "immer abweisen" gesetzt.</li>
102)     <li>Die DNS-Records für DKIM und Autoconfig werden nicht erstellt.</li>
103)     <li>Sie können keine Postfächer unter der Domain anlegen.</li>
104)     <li>Der Mail-Server wird E-Mails an diese Domain nicht annehmen.</li>
105)     </ul>');
106)  } else {
Bernd Wurst added missing file

Bernd Wurst authored 1 year ago

107)     system_failure('unbekannter Zustand der Domain');
108) }
109) 
Bernd Wurst Erster Entwurf nomail-Feature

Bernd Wurst authored 1 year ago

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

Bernd Wurst authored 1 year ago

111) 
112)