4 define('TEXT_SUBSCRIBE', 'Sie werden in Kürze eine Mail von der Liste erhalten, die Sie beantworten müssen.
5 Erst dann werden Sie tatsächlich auf der Mailing-Liste angemeldet.
6 Dieser Mechanismus schützt Sie davor, daß jemand Fremdes einfach Ihre Adresse auf der Liste anmelden kann.');
7 define('TEXT_UNSUBSCRIBE', 'Sie werden sofort aus der Liste ausgetragen.
8 Wir würden uns freuen, wenn Sie weiterhin Freie Software und GNU/Linux verwenden und
9 andere bei der Nutzung unterstützen.
10 Der Linux-Stammtisch in Oldenburg steht natürlich auch weiterhin für Sie offen.');
11 define('ERROR_NO_NAME','Sie haben keinen Namen angegeben,\nbitte holen Sie das nach.');
12 define('ERROR_NO_MAIL','Sie haben keine Mail-Adresse angegeben,\nbitte holen Sie das nach.');
13 define('ERROR_MAIL_INVALID','Sie haben keine gültige Mail-Adresse angegeben,\nbitte holen Sie das nach.');
14 ######################################################################################
16 # RFC822 Email Parser #
17 # http://code.iamcal.com/php/rfc822/rfc822.phps #
19 # By Cal Henderson <cal@iamcal.com> #
20 # This code is licensed under a Creative Commons Attribution-ShareAlike 2.5 License #
21 # http://creativecommons.org/licenses/by-sa/2.5/ #
25 ######################################################################################
28 function is_valid_email_address($email){
29 $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
30 $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
31 $char = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c'.
32 '\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]';
35 $quoted_pair = '\\x5c[\\x00-\\x7f]';
36 $domain_literal = "\\x5b($dtext|$quoted_pair)*\\x5d";
37 $quoted_string = "\\x22($qtext|$quoted_pair)*\\x22";
39 $top_domain = "[a-zA-Z]{2,10}";
40 $sub_domain = "($domain_ref|$domain_literal)";
41 $word = "($atom|$quoted_string)";
42 $domain = "$sub_domain(\\x2e$sub_domain)*\\x2e$top_domain";
43 $local_part = "$word(\\x2e$word)*";
44 $addr_spec = "$local_part\\x40$domain";
45 return preg_match("!^$addr_spec$!", $email) ? 1 : 0;
48 <page name="Mailing-Liste mit Einladungen">
50 <h3>Einladungen per Mail</h3>
59 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
60 if (isset($_POST['dasteil']))
61 $email = $_POST['dasteil'];
62 if (isset($_POST['dername']))
63 $name = $_POST['dername'];
66 $error = ERROR_NO_NAME;
67 elseif (empty($email))
68 $error = ERROR_NO_MAIL;
69 elseif (!is_valid_email_address($email))
70 $error = ERROR_MAIL_INVALID;
72 $to = 'linux-stammtisch-einladungen-request@lists.infodrom.org';
73 if (isset($_POST['subscribe']))
74 $subject = 'subscribe';
76 $subject = 'unsubscribe';
78 $body = "Request by <http://" . $_SERVER["SERVER_NAME"] . "/>\n\n";
79 $body .= "URL : " . (isset($_SERVER["SCRIPT_URI"])?$_SERVER["SCRIPT_URI"]:$_SERVER["HTTP_REFERER"]) . "\n";
80 $body .= "Remote : " . $_SERVER["REMOTE_ADDR"] . "\n";
81 $body .= "UserAgent: " . $_SERVER["HTTP_USER_AGENT"] . "\n";
83 $from = 'From: ' . mb_encode_mimeheader($name) . " <" . $email . ">";
85 mail($to, $subject, $body, $from);
94 <p>Die Linux User Group Oldenburg betreibt neben der obigen
95 Mailing-Liste für Diskussionen auch eine moderierte Liste, über die nur
96 Einladungen und Administrativa verschickt werden. Diese Liste ist
97 insbesondere für weniger versierte Mitglieder gedacht, denen die
98 Diskussionen auf der herkömmlichen Liste zu viel werden.</p>
100 <p>Sie können sich bequem über das Formular an- und abmelden. Nach
101 Abschicken der Anmeldung wird Ihnen eine E-Mail zugestellt, die sie
102 beantworten müssen. Danach werden Sie auf der Mailing-Liste
105 <style type="text/css">
107 background-color: #e6e6e6;
108 border: 1px solid #404080;
119 border: 1px solid #000000;
120 background-color: #d0d0d0;
133 echo('<p class="alert">'.str_replace('\n',' ', $error).'</p>');
136 <script language="javascript"><!--
137 function check_form()
139 var name = document.getElementById('dername');
140 var email = document.getElementById('dasteil');
145 if (name.value.length == 0) {
146 alert('<?=ERROR_NO_NAME?>');
150 if (email.value.length == 0) {
151 alert('<?=ERROR_NO_MAIL?>');
159 <form action="einladungen.php" method="POST">
162 <br><input type="text" name="dername" id="dername" tabindex="1" value="<?=$name?>" size="40" />
163 <br><b>Mail-Adresse</b>
164 <br><input type="text" name="dasteil" id="dasteil" tabindex="2" value="<?=$email?>" size="40" />
167 <input class="button" type="submit" tabindex="3" name="subscribe" value="Anmelden" onclick="return check_form();">
168
169 <input class="button" type="submit" tabindex="4" name="unsubscribe" value="Abmelden" onclick="return check_form();">
174 } else { /* if ($display) */
175 if (isset($_POST['subscribe']))
176 echo("<p>".TEXT_SUBSCRIBE."</p>");
178 echo("<p>".TEXT_UNSUBSCRIBE."</p>");
180 } /* if ($display) */
185 # mode: indented-text