( ! ) Warning: Declaration of action_plugin_tag::register(&$contr) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/virtual/mxchange.org/wiki/htdocs/lib/plugins/tag/action.php on line 13
Call Stack
#TimeMemoryFunctionLocation
10.0000351776{main}( ).../doku.php:0
20.0001352776require_once( '/var/www/virtual/mxchange.org/wiki/htdocs/inc/init.php' ).../doku.php:29
30.0124587328Doku_Event_Handler->Doku_Event_Handler( ).../init.php:213
40.0126588456plugin_load( ).../events.php:157
50.0126588456Doku_Plugin_Controller->load( ).../pluginutils.php:45
60.0126588528class_exists ( ).../plugincontroller.class.php:95
70.0126588528spl_autoload_call ( ).../plugincontroller.class.php:95
80.0126588616load_autoload( ).../plugincontroller.class.php:95
90.0127589816include_once( '/var/www/virtual/mxchange.org/wiki/htdocs/lib/plugins/tag/action.php' ).../load.php:123

( ! ) Warning: Declaration of action_plugin_captcha::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/virtual/mxchange.org/wiki/htdocs/lib/plugins/captcha/action.php on line 0
Call Stack
#TimeMemoryFunctionLocation
10.0000351776{main}( ).../doku.php:0
20.0001352776require_once( '/var/www/virtual/mxchange.org/wiki/htdocs/inc/init.php' ).../doku.php:29
30.0124587328Doku_Event_Handler->Doku_Event_Handler( ).../init.php:213
40.0129597120plugin_load( ).../events.php:157
50.0129597120Doku_Plugin_Controller->load( ).../pluginutils.php:45
60.0129597168class_exists ( ).../plugincontroller.class.php:95
70.0129597168spl_autoload_call ( ).../plugincontroller.class.php:95
80.0129597256load_autoload( ).../plugincontroller.class.php:95

( ! ) Warning: Declaration of action_plugin_qc::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/virtual/mxchange.org/wiki/htdocs/lib/plugins/qc/action.php on line 0
Call Stack
#TimeMemoryFunctionLocation
10.0000351776{main}( ).../doku.php:0
20.0001352776require_once( '/var/www/virtual/mxchange.org/wiki/htdocs/inc/init.php' ).../doku.php:29
30.0124587328Doku_Event_Handler->Doku_Event_Handler( ).../init.php:213
40.0131604136plugin_load( ).../events.php:157
50.0131604136Doku_Plugin_Controller->load( ).../pluginutils.php:45
60.0131604184class_exists ( ).../plugincontroller.class.php:95
70.0131604184spl_autoload_call ( ).../plugincontroller.class.php:95
80.0131604272load_autoload( ).../plugincontroller.class.php:95

( ! ) Warning: Declaration of action_plugin_authad::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/virtual/mxchange.org/wiki/htdocs/lib/plugins/authad/action.php on line 0
Call Stack
#TimeMemoryFunctionLocation
10.0000351776{main}( ).../doku.php:0
20.0001352776require_once( '/var/www/virtual/mxchange.org/wiki/htdocs/inc/init.php' ).../doku.php:29
30.0124587328Doku_Event_Handler->Doku_Event_Handler( ).../init.php:213
40.0133610568plugin_load( ).../events.php:157
50.0133610568Doku_Plugin_Controller->load( ).../pluginutils.php:45
60.0133610616class_exists ( ).../plugincontroller.class.php:95
70.0133610616spl_autoload_call ( ).../plugincontroller.class.php:95
80.0133610704load_autoload( ).../plugincontroller.class.php:95
de:mailer-project [Mailer-Project Documentation Wiki]

User Tools

Site Tools


de:mailer-project

Mailer-Project

Das seit einigen Jahren genannte Mailer-Project (Arbeitsname: mailer; ehemals mxchange) ist ein freies Paidmailer-Script, das bis (und einschliesslich) Version 0.2.1-FINAL unter der GNU General Public License v2 zum freien Download zur Verfügung steht und ab Version 0.3.0 unter der GNU GPL 3 steht. In der Version 0.2.1-FINAL ist dies jedoch nicht so strikt vermerkt, dort liest man eher: … either version 2 of the License, or (at your option) any later version. … bzw. in der 0.3.0: .. either version 3 of the License, or (at your option) any later version. ….

Wie alles began und die Wahl der Lizenz

Das Script selbst hat eine sehr lange und sehr interessante Geschichte hinter sich. Das Script ist im August 2003 herum (genaueres Datum leider nicht mehr bekannt, aber anhand der Quellcodekommentare läßt sich der “Geburtstag” auf den 25.08.2003 schätzen (siehe dazu hier, hier und hier). Zu dieser Zeit (jedenfalls waren mir nicht mehr Scripte bekannt) gab es zwei kontrahierende Scripte, eines der ProWebMa GmbH, das in ASP.net geschrieben war (aktuell weisst die Webseite keine Referenz dazu mehr auf) und eines von Jan Rosenstein in PHP geschrieben (die Webseite gibt es heute immer noch). Das MT-Script, angefangen von Daniel Bubolz, kannte ich damals noch nicht (und war vielleicht auch nicht verbreitet, was sich zugegebenermassen gewaltig geändert hat).

Das eine Script bot Netscape-Support an, während das andere den Versand nach Postleitzahlen erlaubte, welches was anbot, weiss ich nicht mehr genau. Alle Scripte hatten jedoch eines gemeinsam: Die Lizenz ist “Close-Source” (a la EULA). Da ich selber bereits schon freie Software nutzte (seit Dezember 1999 bin ich quasi nur noch mit Linux unterwegs), lag es mir nahe, das Script unter einer freien Lizenz zu stellen. Von der GNU Affero Lizenz hatte ich damals nichts gewusst, von der GNU GPL aber schon mehr und somit fiehl die Entscheidung nicht schwer, das Script unter die zur damiligen Zeit verfügbaren GNU GPL v2 zu stellen.

Eine EULA kam erstmal nicht in Frage, bis eine “Pro-Version” (oder “Business-Version” genannt) herauskam, die aber bald schnell eingestellt wurde. Mehr dazu in den darauf folgendem Abschnitt.

Entstehung des Projektnamens

Anfangs hies das Script “MXChange Mail-Exchange” (anfangs noch mit Bindestrich zwischen den M und dem X, also M-XChange, wie Mail-Exchange), was sich von Mail-Exchange ableiten läßt und so auch die bis heute erhaltenen drei Domains. Am 08.08.2008 (zufällig gewählt!) gab es dann einen Forumsbeitrag von mir, wo ich meine Mitglieder dazu aufforderte mir bei der Suche nach einem neuen Namen zu helfen, da der alte Name eventuell einen Namenskonflikt mit einem Produkt aus der Automobilindustrie darstellte.

Die Namensuche hat fast ein Jahr gedauert (siehe am Ende des vorherigen Forumbeitrags) und endete in einer Abstimmung, die jedoch ich entscheiden musste (wegen zu weniger Teilnehmer). Nach längerer Zeit (genaue Angaben nicht möglich) war dann auch der Namenswechsel abgeschlossen, samt Forum, Bug-Tracker und Hauptseite. Nur noch das Logo zeigt noch den alten Namen und ein symbolischer Link “mxchange” zeigt auf die ebenfalls umgenannte Repository mailer

Was es mit der Pro-Version auf sich hat

Die Pro-Version ist zwischen der Version 0.1.0 (oder etwas davor, genaueres müsste ich nachsehen) und 0.2.0 entstanden und sollte laut ursprünglicher Planung deutlich mehr Erweiterungen (in drei Ausbaustufen eingeteilt) und Priority-Support (schneller bearbeitet; auch per Telefon) zu einem fairen Preis beinhalten. Das Script lief auch so eine ganze Zeit lang gut und die ersten Kunden tauchten auf und bestellten die Scripte. Das lief auch ganz gut, bis ich per Zufall über die Seite von ifrOSS bzw. genauer dass des Jura-Wikis stolperte, wo jemand mit den Initialien K.W. eine Frage stellte, die sich auf eine “Business-Version” (allem Anschein nach) meines Scriptes bezieht.

Ich hatte dort eine mögliche Gefahr für mein Projekt drinne gewittert und schnell alle “Pro-Teile” umlizensiert auf GNU GPL v2 sowie (doch hoffentlich) alle fehlenden GNU-Header in den verbliebenen Scripten ergänzt (dies wurde von der selben Person auch bemängelt). Für mich war dann der Fall abgehakt, wo ich dann die letzten Referenzen auf die Pro-Version aus meiner Hauptseite entfernte - u.a. die Verkaufsseite - Mitte 2009 ist dann der damals privat verkaufter Datenbankkonverter der den Wechsel von MT-Script v2.5/2.7 zu meinem erleichtern soll mit dazu gekommen (auch GNU GPL v2).

Heute sind alle PHP-Scripte vollständig unter der GNU GPL v2 (oder jede neue Version der Lizenz) lizensiert, auch wenn das PHP-Script noch so klein ist (und der Header mehr Zeilen als der geschriebene Code selbst verbraucht). Bitte seht davon ab, Fragen zur Pro-Version im Forum zu stellen, die Idee hierzu ist eingestampft und das Bug-Ticket 6 als gelöst geschlossen. Auch bitte per Mail oder Anruf davon absehen, ich sehe das Thema “Pro-Version” als beerdigt an, da alles frei zugänglich ist, was mal “Pro-Version” war.

Weiterer Entwicklungsfortschritt

Seitdem alles unter der GNU GPL steht, hat sich bis zur aktuell verfügbaren Revision (über 2.500 Revisionen sind mit Stand vom 07.08.2011 herausgekommen) hat sich sehr vieles geändert. Die wesendlichen Änderungen waren die Einführung des EL-Codes, der praktisch vollständige Verzicht auf Konstanten (__SECURITY sei mal eine Ausnahme) und der Einsatz von Arrays für die Sprachelemente und das vollständig überarbeitete Referral-System und das endlich reparierte Menüsystem und Erweiterungsmanagement (es waren gravierende Bugs vorhanden).

Auch die vollständige Validerbarkeit auf XHTML 1.0 Transitional sei hier erwähnenswert, was an mich als Mangel herangetragen wurde und weshalb es vermutlich einen Fork gibt, der meiner Kenntnis nach aber nie veröffentlicht wurde. Das seit ein paar Jahren eingebaute Filtersystem (Intercepting Filter Pattern schon fast) hat viel Flexiblität ins Script gebracht und soll externe Entwickler dazu ermuntern eigenen Code für mein Projekt zu schreiben (wenn er nützlich sein sollte, bitte wieder an mich zurücksenden und es allen zu Gute kommen zu lassen).

Und es sollte auch nicht dieses Wiki unerwähnt bleiben. Was genauer am Script alles geändert wurde, wäre - ohne Übertreibung - viel zu viel und würde dieses Wiki nur sprengen. Bitte lest dazu im Forum unter Ankündigungen bzw. unter dem Commit-Statistiken weiter.

Version 0.3.0 doch herunterladbar, oder nicht?

Im Download-Archiv ist eine Version 0.3.0 vom 15.06.2007 runterladbar. Der Code dieser Version ist aus dem 0.2.0-Code heraus entstanden und sollte ein (wenn auch gescheiterter) Versuch darstellen, den Code vollständig umzubauen, angefangen mit der Installationsroutine, wird aber nicht mehr aktiv weiterentwickelt.

Ich habe - wie alle älteren Versionen auch - zwar zum Download bereitgestellt, mache aber dringend darauf aufmerksam, dass diese ausschliesslich zu Dokumentierungszwecken dienen sollen (wie sich mein Script im Laufe der langen Entwicklungszeit gewandelt hat) und dass diese nicht supportiert werden.

Hierzu eine Bitte: Bitte verwendet immer die neuste Revision aus der GIT-Repository, alle älteren Revisionen werden ausnahmelos nicht unterstützt, da der Supportaufwand sonst dem Nutzen übersteigt und Bugs vielleicht bereits beseitigt sind.

Was im "master" zu finden ist

Die GIT-Repository besteht seit ein paar Tagen und bietet in der Branch “master” einen erstmal nicht funktionierenden Code an. Dieser wird die kommende Version 0.3.0 (nicht mit eingangs beschriebenem verlassenen Fork verwechseln) sein (und zwar erstmal die “Entwicklerversion” der 0.3.0). Der “trunk” stellt bei den meisten OpenSource-Projekten auch genau dies dar, den Entwicklerzweig, wo die neusten Änderungen einfliessen (auch mal als “Bleeding Edge”, wie “blutende Klinge” übersetzt bezeichnet).

Laut Commit-Statistik ist aber seit März/April 2011 nichts mehr an Änderungen eingeflossen und die letzten waren nur “verwaltungstechnische”, also SVN-Eigenschaften und ein paar kosmetische Korrekturen. Auch wird von der Verwendung dieses Codes momentan abgeraten, da dieser ohnehin nicht ausführbar ist (es kommt ein Abbruch im Menüsystem), die Entwicklung daran ist aber keines Falls eingestellt, nur halt derzeit eingefroren.

Etwas in die Zukunft geschaut

Niemand kann genau sagen, was alles in der Zukunft geschehen wird. Bezüglich dieses Projektes wird es aber Fertigstellungen aller in der Repository erhältlichen Erweiterungen geben, ins besondere ext-network, ext-forced und ext-sponsor, da diese ein grosser und wichtiger noch fehlender Teil eines Paidmailers sind. Auch sei die Besuchertauscherweiterung ext-surfbar nennenswert (alle anderen Erweiterungen natürlich auch).

de/mailer-project.txt · Last modified: 2014/02/04 21:04 by quix0r