Merge remote-tracking branch 'origin/bug-1318' into release
authorMichael Tänzer <neo@nhng.de>
Fri, 5 Dec 2014 00:11:53 +0000 (01:11 +0100)
committerMichael Tänzer <neo@nhng.de>
Fri, 5 Dec 2014 00:11:53 +0000 (01:11 +0100)
includes/general.php
scripts/54at-ate-linz-email.txt [new file with mode: 0644]
scripts/54at-ate-linz-mail.php.txt [new file with mode: 0644]
scripts/55de-ate-wiesbaden-email.txt [new file with mode: 0644]
scripts/55de-ate-wiesbaden-mail.php.txt [new file with mode: 0644]
scripts/56at-ate-oberwart-email.txt [new file with mode: 0644]
scripts/56at-ate-oberwart-mail.php.txt [new file with mode: 0644]
scripts/57at-ate-graz-email.txt [new file with mode: 0644]
scripts/57at-ate-graz-mail.php.txt [new file with mode: 0644]
scripts/58at-ate-wien-email.txt [new file with mode: 0644]
scripts/58at-ate-wien-mail.php.txt [new file with mode: 0644]

index a03a45f..17b449b 100644 (file)
 
                        foreach($mxhosts as $key => $domain)
                        {
-                               $fp = @fsockopen($domain,25,$errno,$errstr,5);
+                               $fp_opt = array(
+                                       'ssl' => array(
+                                               'verify_peer'   => false,       // Opportunistic Encryption
+                                               )
+                                       );
+                               $fp_ctx = stream_context_create($fp_opt);
+                               $fp = @stream_socket_client("tcp://$domain:25",$errno,$errstr,5,STREAM_CLIENT_CONNECT,$fp_ctx);
                                if($fp)
                                {
+                                       stream_set_blocking($fp, true);
 
-                                       $line = fgets($fp, 4096);
-                                        while(substr($line, 0, 4) == "220-")
-                                               $line = fgets($fp, 4096);
-                                       if(substr($line, 0, 3) != "220")
+                                       $has_starttls = false;
+
+                                       do {
+                                               $line = fgets($fp, 4096);
+                                       } while(substr($line, 0, 4) == "220-");
+                                       if(substr($line, 0, 3) != "220") {
+                                               fclose($fp);
                                                continue;
-                                       fputs($fp, "HELO www.cacert.org\r\n");
-                                       $line = fgets($fp, 4096);
-                                       while(substr($line, 0, 3) == "220")
+                                       }
+
+                                       fputs($fp, "EHLO www.cacert.org\r\n");
+                                       do {
                                                $line = fgets($fp, 4096);
-                                       if(substr($line, 0, 3) != "250")
+                                               $has_starttls |= substr(trim($line),4) == "STARTTLS";
+                                       } while(substr($line, 0, 4) == "250-");
+                                       if(substr($line, 0, 3) != "250") {
+                                               fclose($fp);
                                                continue;
-                                       fputs($fp, "MAIL FROM:<returns@cacert.org>\r\n");
-                                       $line = fgets($fp, 4096);
+                                       }
+
+                                       if($has_starttls) {
+                                               fputs($fp, "STARTTLS\r\n");
+                                               do {
+                                                       $line = fgets($fp, 4096);
+                                               } while(substr($line, 0, 4) == "220-");
+                                               if(substr($line, 0, 3) != "220") {
+                                                       fclose($fp);
+                                                       continue;
+                                               }
+
+                                               stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
+
+                                               fputs($fp, "EHLO www.cacert.org\r\n");
+                                               do {
+                                                       $line = fgets($fp, 4096);
+                                               } while(substr($line, 0, 4) == "250-");
+                                               if(substr($line, 0, 3) != "250") {
+                                                       fclose($fp);
+                                                       continue;
+                                               }
+                                       }
 
-                                       if(substr($line, 0, 3) != "250")
+                                       fputs($fp, "MAIL FROM:<returns@cacert.org>\r\n");
+                                       do {
+                                               $line = fgets($fp, 4096);
+                                       } while(substr($line, 0, 4) == "250-");
+                                       if(substr($line, 0, 3) != "250") {
+                                               fclose($fp);
                                                continue;
+                                       }
+
                                        fputs($fp, "RCPT TO:<$email>\r\n");
-                                       $line = trim(fgets($fp, 4096));
+                                       do {
+                                               $line = fgets($fp, 4096);
+                                       } while(substr($line, 0, 4) == "250-");
+                                       if(substr($line, 0, 3) != "250") {
+                                               fclose($fp);
+                                               continue;
+                                       }
+
                                        fputs($fp, "QUIT\r\n");
                                        fclose($fp);
 
diff --git a/scripts/54at-ate-linz-email.txt b/scripts/54at-ate-linz-email.txt
new file mode 100644 (file)
index 0000000..1e9020e
--- /dev/null
@@ -0,0 +1,91 @@
+[Deutsch]
+
+Es hat sich viel getan in den letzten Jahren. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Freitag, den 16. Mai 2014
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- Fachhochschule Oberoesterreich, Hauptgebaeude, 1.Stock, Raum SR A-103
+- Garnisonstrasse 21
+- 4020 Linz 
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [https://wiki.cacert.org/Events/2014-05-16-ATELinz]
+
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Linz teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+
+[English]
+
+During the last years many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Friday, May 16th 2014
+- during: 19:00 - ca. 22:00
+- University of Applied Sciences Upper Austria, Room SR A-103
+- Garnisonstrasse 21
+- 4020 Linz 
+
+
+Details to the location can be found:
+Wiki [https://wiki.cacert.org/Events/2014-05-16-ATELinz]
+
+User reply for registration: 'I will attend the ATE-Linz'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/54at-ate-linz-mail.php.txt b/scripts/54at-ate-linz-mail.php.txt
new file mode 100644 (file)
index 0000000..5ffdb24
--- /dev/null
@@ -0,0 +1,140 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+    include_once("../includes/mysql.php");
+
+    $lines = "";
+    $fp = fopen("54at-ate-linz-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+
+// CAcert Assurance and Keysigning event at FUDcon, Lawrence, KS, Jan 19th 2013
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $eventname = "CAcert Assurance and Keysigning at FUDcon Lawrence, KS";
+//   $city = "January 19th 2013";
+
+// ATE-Kiel 2013-02-11
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//   $eventname = "ATE-Kiel";
+//   $city = "11. Februar 2013";
+
+// Linuxtag, Berlin, May 22-25, 2013,
+//       $locid = 228950;        // Berlin
+//       $eventname = "Linuxtag Berlin";
+//       $city = "22.-25. Mai, 2013";
+
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+// $eventname = "ATE-Luebeck";
+// $city = "07. Juni 2013";
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "16. August 2013";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "15. Oktober 2013";
+
+//   $locid = 54334;      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+   $eventname = "ATE-Linz";
+   $city = "16. Mai 2014";
+    
+    
+    
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/55de-ate-wiesbaden-email.txt b/scripts/55de-ate-wiesbaden-email.txt
new file mode 100644 (file)
index 0000000..4880388
--- /dev/null
@@ -0,0 +1,46 @@
+Es hat sich viel getan in den letzten Jahren. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Donnerstag, den 22. Mai 2014
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- CCCMZ e.V.
+- Sedanplatz 7
+- 65183 Wiesbaden
+
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im Wiki
+[https://wiki.cacert.org/Events/2014-05-22ATE-Wiesbaden] und Blog
+[https://www.cccmz.de/cacert-assurer-training-event-22-mai-2014-in-wiesbaden]
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Wiesbaden teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
diff --git a/scripts/55de-ate-wiesbaden-mail.php.txt b/scripts/55de-ate-wiesbaden-mail.php.txt
new file mode 100644 (file)
index 0000000..26666e4
--- /dev/null
@@ -0,0 +1,122 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+    include_once("../includes/mysql.php");
+
+    $lines = "";
+    $fp = fopen("55de-ate-wiesbaden-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = 54334;      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+   $eventname = "ATE-Wiesbaden";
+   $city = "22. Mai 2014";
+
+    
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/56at-ate-oberwart-email.txt b/scripts/56at-ate-oberwart-email.txt
new file mode 100644 (file)
index 0000000..b15f82e
--- /dev/null
@@ -0,0 +1,93 @@
+[Deutsch]
+
+Es hat sich viel getan im letzten Jahr. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das ersteMal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Freitag, den 27. Juni 2014
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- Rotes Kreuz Schulungszentrum Süd (Hotel zur Pinka), Seminarraum "Pinkasaal"
+- Grazerstrasse 71
+- A-7400 Oberwart 
+
+Die Arbeitssprache der Veranstaltung ist Deutsch
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [https://wiki.cacert.org/Events/2014-06-27-ATEOberwart]
+
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Oberwart teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+
+[English]
+
+During the last year many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Friday, May 16th 2014
+- during: 19:00 - ca. 22:00
+- Rotes Kreuz Schulungszentrum Süd (Hotel zur Pinka), Seminarraum "Pinkasaal"
+- Grazerstrasse 71
+- A-7400 Oberwart 
+
+The working language of this event is GERMAN
+
+Details to the location can be found:
+Wiki [https://wiki.cacert.org/Events/2014-06-27-ATEOberwart]
+
+User reply for registration: 'I will attend the ATE-Oberwart'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/56at-ate-oberwart-mail.php.txt b/scripts/56at-ate-oberwart-mail.php.txt
new file mode 100644 (file)
index 0000000..1035f17
--- /dev/null
@@ -0,0 +1,147 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+    include_once("../includes/mysql.php");
+
+    $lines = "";
+    $fp = fopen("56at-ate-oberwart-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+
+// CAcert Assurance and Keysigning event at FUDcon, Lawrence, KS, Jan 19th 2013
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $eventname = "CAcert Assurance and Keysigning at FUDcon Lawrence, KS";
+//   $city = "January 19th 2013";
+
+// ATE-Kiel 2013-02-11
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//   $eventname = "ATE-Kiel";
+//   $city = "11. Februar 2013";
+
+// Linuxtag, Berlin, May 22-25, 2013,
+//       $locid = 228950;        // Berlin
+//       $eventname = "Linuxtag Berlin";
+//       $city = "22.-25. Mai, 2013";
+
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+// $eventname = "ATE-Luebeck";
+// $city = "07. Juni 2013";
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "16. August 2013";
+
+//   $locid = 1992733;       // Wien, Wien, Austria
+//   $eventname = "ATE-Wien";
+//   $city = "15. Oktober 2013";
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+   $locid = 1356196;      // Oberwart, Burgenland, Germany
+   $eventname = "ATE-Oberwart (Korrektur)";
+   $city = "27. Juni 2014";    
+    
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/57at-ate-graz-email.txt b/scripts/57at-ate-graz-email.txt
new file mode 100644 (file)
index 0000000..e9b4a63
--- /dev/null
@@ -0,0 +1,91 @@
+[Deutsch]
+
+Es hat sich viel getan im letzten Jahr. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Donnerstag, den 13. November 2014
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- realraum
+- Brockmanngasse 15
+- 8010 Graz
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [http://wiki.cacert.org/Events/2014-11-13-ATEGraz]
+Blog [http://blog.cacert.org/2014/10/ate-graz-2014-11-13/]
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Graz teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+
+[English]
+
+During the last year many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Thursday, November 13th 2014
+- during: 19:00 - ca. 22:00
+- realraum
+- Brockmanngasse 15
+- 8010 Graz
+
+Details to the location can be found:
+Wiki [http://wiki.cacert.org/Events/2014-11-13-ATEGraz]
+Blog [http://blog.cacert.org/2014/10/ate-graz-2014-11-13/]
+
+User reply for registration: 'I will attend the ATE-Graz'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/57at-ate-graz-mail.php.txt b/scripts/57at-ate-graz-mail.php.txt
new file mode 100644 (file)
index 0000000..0e6786f
--- /dev/null
@@ -0,0 +1,130 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+    include_once("../includes/mysql.php");
+
+    $lines = "";
+    $fp = fopen("57at-ate-graz-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+   $locid = 675661;       // Graz, Steiermark, Austria
+   $eventname = "ATE-Graz";
+   $city = "13. November 2014";
+
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>
diff --git a/scripts/58at-ate-wien-email.txt b/scripts/58at-ate-wien-email.txt
new file mode 100644 (file)
index 0000000..4e55b56
--- /dev/null
@@ -0,0 +1,91 @@
+[Deutsch]
+
+Es hat sich viel getan im letzten Jahr. Eine ganze Reihe von bisher
+eher "muendlich ueberlieferten" Regeln wurden in Policies gegossen.
+Neue Prozeduren (z.B. die Assurer Challenge) und Verpflichtungen (z.B.
+in dem CAcert Community Agreement) wurden beschlossen. Die Assurer
+Training Events wollen versuchen, die ganzen Informationen unter's
+Volk zu bringen:
+
+- Welcher Satz fehlt auf alten CAP Formularen?
+- Warum soll ich mir R/L/O einpraegen?
+- Wie verhaelst du dich,
+    wenn du ein fremdes Ausweisdokument das erste Mal pruefst?
+
+Antworten auf diese und weitere Fragen erhaelst du bei den
+Assurer Training Events (ATEs).
+
+Darueberhinaus wird beim ATE der Vorgang der Identitaetsueberpruefung
+trainiert und auditiert, um die Qualitaet der Assurances in der
+taeglichen Praxis zu erfassen. Dabei gilt es moegliche Fehler und
+Fallstricke zu erkennen und aufzudecken. Die Assurer haben also die
+Moeglichkeit, sich mit den Fehlern auseinanderzusetzen und zu erfahren,
+wie diese vermieden werden koennen.
+
+Wie IanG sagte: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers, and include parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+Die kommende Veranstaltung in deiner Naehe findet statt am:
+
+- Mittwoch, den 19. November 2014
+- in der Zeit von: 19:00 - ca. 22:00 Uhr
+- Metalab Wien
+- Rathausstrasse 6
+- 1010 Wien 
+
+
+Details zum Veranstaltungsort und Anfahrthinweise findet Ihr im
+Wiki [http://wiki.cacert.org/Events/2014-11-19-ATEWien]
+Blog [http://blog.cacert.org/2014/10/ate-wien-2014-11-19/]
+
+Teilnehmer Registrierung mit Rueckantwort:
+ 'Ich moechte am ATE-Wien teilnehmen'
+
+Das Veranstaltungs-Team freut sich schon auf Eure Teilnahme.
+
+Kontakt: events@cacert.org
+
+
+
+[English]
+
+During the last year many changes took place inside CAcert. Many "oral"
+rules have been put into Policies. New procedures
+(e.g. Assurer Challenge) and obligations
+(e.g. CAcert Community Agreement) have been put into live.
+The Assurer Training Events (ATE) try to spread this information:
+
+- What is missing on the "old" CAP forms?
+- Why should I remember R/L/O?
+- What can you do if an Assuree shows an ID document unknown to you?
+
+These and more questions will be answered during the
+Assurer Training Events (ATEs)
+
+Furthermore, the ATE trains how to do assurances and audits assurances,
+to measure the quality of assurances in the daily routine. Here are some
+possible errors and pitfalls which need to be found. Assurers have the
+opportunity to see those errors and how to avoid them.
+
+As IanG said: The ATE or Assurer Training Event is exceptionally
+recommended for all Assurers and includes parts which contribute
+directly to our audit. Come and find out how you can also contribute.
+
+The next event held in your area will be:
+
+- Wednesday, November 19th 2014
+- during: 19:00 - ca. 22:00
+- Metalab Vienna
+- Rathausstrasse 6
+- 1010 Vienna 
+
+Details to the location can be found:
+Wiki [http://wiki.cacert.org/Events/2014-11-19-ATEWien]
+Blog [http://blog.cacert.org/2014/10/ate-wien-2014-11-19/]
+
+User reply for registration: 'I will attend the ATE-Vienna'
+
+The event team is looking forward for your attendance:
+
+Contact: events@cacert.org
diff --git a/scripts/58at-ate-wien-mail.php.txt b/scripts/58at-ate-wien-mail.php.txt
new file mode 100644 (file)
index 0000000..fe95455
--- /dev/null
@@ -0,0 +1,134 @@
+#!/usr/bin/php -q
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2013  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+    include_once("../includes/mysql.php");
+
+    $lines = "";
+    $fp = fopen("58at-ate-wien-email.txt", "r");
+    while(!feof($fp))
+    {
+        $line = trim(fgets($fp, 4096));
+        $lines .= wordwrap($line, 75, "\n")."\n";
+    }
+    fclose($fp);
+
+
+//  $locid = intval($_REQUEST['location']);
+//  $maxdist = intval($_REQUEST['maxdist']);
+//  maxdist in [Km]
+  $maxdist = 200;
+
+
+// location      location.ID
+//   verified: 29.4.09 u.schroeter
+//   $locid = 7902857;       // Paris
+//   $locid = 238568;        // Bielefeld
+//   $locid = 715191;        // Hamburg
+//   $locid = 1102495;       // London
+//   $locid = 606058;        // Frankfurt
+//   $locid = 1775784;       // Stuttgart
+//   $locid = 228950;        // Berlin
+//   $locid = 606058;        // Frankfurt
+//   $locid = 599389;        // Flensburg
+//   $locid = 61065;        // Amsterdam, Eemnes
+//   $locid = 228950;        // Berlin
+//   $locid = 2138880;      // Baltimore (Baltimore (city)), Maryland, United States
+//   $locid = 1486658;       // Potsdam
+//   $locid = 664715;       // Goteborg, Vastra Gotaland, Sweden
+//   $locid = 2094781;       // Mission Hills (Los Angeles), California, United States
+//   $locid = 423655;       // Copenhagen, Kobenhavn*, Denmark
+//   $locid = 2093625;       // Los Angeles, CA ???
+//   $locid = 2094326       // Los Angeles (Los Angeles), California, United States
+//   $locid = 2257312;       // Sydney, New South Wales, Australia
+//   $locid = 572764;       //  Essen, Nordrhein-Westfalen, Germany
+//   $locid = 78;       //  Aachen, Nordrhein-Westfalen, Germany
+//   $locid = 1260319;       // Muenchen
+//   $locid = 266635;       // Bonn, Nordrhein-Westfalen, Germany
+//   $locid = 873779;       // Karlsruhe, Baden-Wuerttemberg, Germany
+//   $locid = 520340;       // Dusseldorf, Nordrhein-Westfalen, Germany
+//       $locid = 2262656;       // Melbourne, Victoria, Australia
+//   $locid = 2185076;       // Raleigh (Wake), North Carolina, United States
+//   $locid = 2126955;       // Lawrence (Douglas), Kansas, United States
+//   $locid = 919560;       // Kiel, Schleswig-Holstein, Germany
+//       $locid = 228950;        // Berlin
+// $locid = 1117395;       // Lubeck Hansestadt, Schleswig-Holstein, Germany
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $locid = 1992733;       // Wien, Wien, Austria
+
+//   $locid = ; 54334      // Amberg, Bayern, Germany
+//   $eventname = "ATE-Amberg";
+//   $city = "06. Januar 2014";
+    
+//   $locid = 1089877;      // Linz, Oberoesterreich, Austria
+//   $eventname = "ATE-Linz";
+//   $city = "16. Mai 2014";
+    
+//   $locid = 1993029;      // Wiesbaden, Hessen, Germany
+//   $eventname = "ATE-Wiesbaden";
+//   $city = "22. Mai 2014";
+
+    
+//   $locid = 1356196;      // Oberwart, Burgenland, Germany
+//   $eventname = "ATE-Oberwart (Korrektur)";
+//   $city = "27. Juni 2014";    
+
+//   $locid = 675661;       // Graz, Steiermark, Austria
+//   $eventname = "ATE-Graz";
+//   $city = "13. November 2014";
+
+   $locid = 1992733;       // Wien, Wien, Austria
+   $eventname = "ATE-Wien";
+   $city = "19. November 2014";
+
+    $query = "select * from `locations` where `id`='$locid'";
+        $loc = mysql_fetch_assoc(mysql_query($query));
+
+    $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) +
+            (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) *
+             COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.*
+            FROM `locations`
+                inner join `users`  on `users`.`locid` = `locations`.`id`
+                inner join `alerts` on `users`.`id`=`alerts`.`memid`
+                inner join `notary` on `users`.`id`=`notary`.`to`
+            WHERE   (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1)
+            GROUP BY `users`.`id`
+            HAVING `distance` <= '$maxdist'
+            ORDER BY `distance` ";
+     echo $query;
+
+    // comment next line when starting to send mail not only to me
+    //  $query = "select * from `users` where `email` like 'cacerttest%'";
+
+    $res = mysql_query($query);
+    $xrows = mysql_num_rows($res);
+
+    while($row = mysql_fetch_assoc($res))
+    {
+    //    uncomment next line to send mails ...
+        sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    }
+  // 1x cc to events.cacert.org
+    sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    // 1x mailing report to events.cacert.org
+  sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+
+    // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1
+  sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1);
+    echo "invitation sent to $xrows recipients.\n";
+
+?>