Mailing List Manager Pro -> Problems

Die Emailsoftware "Mailing List Manager Pro" ist ja schön und gut, hat aber auch ihre Macken. Zumindest bei uns auf dem Server. Ich hatte mir die PHP Software für meine Kunden gekauft, da das bisher eingesetzte OpenSource Produkt phplist teilweise extreme Probleme beim Versand größerer Mengen hatte.

Nun gut. Software aufgesetzt, Testkampagne angelegt und verschickt. Problemlos. Als ich allerdings kommt es beim Eintragen in eine Liste zu unschönen Dingen:

1) Alle Mailinggruppen werden aufgelistet
Ich möchte für jeden meiner Kunden eine eigene Anmeldeseite. Wenn ich die Subscription-Form aufrufe, erscheinen allerdings alle im System befindlichen Gruppen. Da es im Internet keine Doku gibt, wie die Software zu verwenden ist, bzw. welche Parameter zu übergeben sind, habe ich die Datei subscribe/index.php etwas angepasst.

Hierzu vor dem Codeblock (ca. Zeile 283)

$sql="select id, title from $table_g
where
enabled='1'
".($r["group_list"] ? " and id in (".$r["group_list"].")" : "")."
order by position";

die Zeile

$r['group_list'] = $_GET['grouplist'];

einfügen.

Wenn ich nun die Anmeldeseite mit dem Parameter ?grouplist=XY (wobei XY für die Mailing-Gruppen-ID steht) aufrufe, wird nur diese Gruppe angezeigt. Da die Nutzer wahrscheinlich vergessen, das Häckchen vor der Mailinggruppe zu setzen, habe ich die Datei /templates/subscribe/form.tpl ab Zeile 38 wie folgt angepasst:

<tr>
<td valign="top">{rs:MAILING_GROUPS}:</td>
<td>
<table cellspacing="0" cellpadding="0" border="0">
{row:GROUPS_SELECT}
<tr>
<td><input type="checkbox" name="r[group_id][]" value="{id}" checked></td>
<td>{title}</td>
</tr>

Da mich die Encoding-Geschichte für die Kunden meiner Kunden auch nicht interessiert, habe ich diesen Block darüber einfach mit dem Style "display:none" ausgeblendet

2) Bestätigungsemails werden beim Ein- und Austragen nicht versendet.
Eine ärgerliche Sache, wenn die Postfächer bzw. der Mailserver nicht auf dem gleichen Rechner wie der Webserver läuft. Trotz der Einrichtung der SMTP-Zugangsdaten in der Mailingsoftware, werden die Emails nicht verschickt.

Woran lag es: die Mailing List Manager Pro Software von shedix verwendet den hardgecodeten "localhost"-Server.

Um dies zu umgehen, bedarf es der Auskommentierung der Zeilen 157 + 158 der Datei /tools/class.smtp.php wie folgt:

function send_mail() {
//$this->info["host"]="localhost";
//$this->info["port"]=25;

return $this->send();

Doch damit noch nicht genug. Beim Eintragen klappt es zwar jetzt, allerdings bekommt der Nutzer immer noch keine Bestätigungsmail beim Austragen.

Hierfür muss man noch die Server-Daten in der Datei unsubscribe/index.php in der Variablen $array ab Zeile 44 ergänzen:

$array=array(
"login"         => $settings["autoresponder"]["smtp"]["login"],
"password"      => $settings["autoresponder"]["smtp"]["password"],
"host"          => $settings["autoresponder"]["smtp"]["host"],
"port"          => $settings["autoresponder"]["smtp"]["port"],
"from_name"     => $settings["mail_from_name"],
"from"          => $settings["autoresponder"]["smtp"]["mail"],
"reply_to"      => "",
"to_name"       => $r["name"],
"to"            => $r["mail"],
"subject"       => $db->get_val("pages".$config["table_prefix"], "subject", "where name='unsubscribe_confirm'"),
"message"       => str_replace($f, $v, $message),
"charset"       => $settings["encoding"],
"content_type"  => "text/plain",
);

So, damit klappt der An- und Abmeldevorgang bei mir ganz gut.

Es gibt jedoch noch weitere Anpassungen, die ich vornehmen musste. Die kommen hier dann so nach und nach rein. Vielleicht hat auch schon jemand die dict.ru auf Deutsch übersetzt. Würde mich freuen!


BASF Hauptversammlung

Mit einem Freund, dem ich Stimmrechte abgegeben habe, war ich letzten Donnerstag bei der BASF-Hauptversammlung (HV) hier in Mannheim. Es war meine erste HV und ich muss zugeben, dass ich mir nur für diesen Zweck ein paar BASF-Aktien gekauft habe.

Wir waren nicht pünktlich zum Beginn um 10 Uhr dort und dennoch kamen noch immer Busladungen an und stauten sich die Leute vor den Eingängen.
Wie man es sich wahrscheinlich denken kann, besteht das Publikum vor allem aus Ehepaaren im Rentenalter, aber uns haben auch ein einige Jugendliche unter 18 überrascht.

Getränke gab es aus Plastikbechern und als Snack erst einmal Brezel (ich frage mich, was wohl norddeutsche Unternehmen servieren) und süße Teilchen.
Die Redner aus dem (nicht sehr großen) Hauptsaal werden mit Bild und Ton überallhin übertragen: ins Treppenhaus, in zig andere kleinere Säle und sogar in die Toiletten.
Wie gesagt gibt es sehr viele andere bestuhlte Säle mit Bildschirmen aber auch Flächen mit Tischen. Eine nette Geste für Leute, die vor allem wegen des Essens kommen.

Die ersten Wortmeldungen kamen von Anlegervertretern und waren mehr perfekt ausformulierte Reden als "Wortbeiträge". Später wurden die Beiträge dann persönlicher und so mussten auch einige Aktionäre an ihr Zeitlimit von 10 Minuten erinnert werden. Vor allem wenn sie Zitate wie "Angestellte werden auf dem Altar der Wirtschaft geopfert" brachten.

Zum Mittag gab es dann Kartoffel-Suppe mit Würstchen, Kartoffelsalat und (Vollkorn-)Nudeln mit Gemüsesoße. Hmm nun ja, da bin ich auch schon wesentlich exquisiter von der BASF bei anderen Veranstaltungen verköstigt worden. Aber da mussten wiederum auch nicht 8000 Leute auf einmal versorgt werden.

Bei der Wahl kann man übrigens aktiv nur für "Nein" oder "Enthaltung" stimmen. "Ja" stimmt man nämlich automatisch.

Lustig war noch als ein Mitglied des Vorstands versuchte an seinem Sitzplatz auf der Bühne mit dem Handy möglichst heimlich zu telefonieren, denn überall stehen Schilder, die einen auf das Handy-Verbot hinweisen.

Da die BASF SE auch dieses Jahr wieder 2 Euro Dividende pro Aktie zahlt, hat sich mein Kauf trotz Ordergebühren auf jeden Fall gelohnt.

Mal gucken, wie es bei SAP wird: Die sind ja mit ihrer HV mittlerweile aus dem Rosengarten in die SAP-Arena gezogen und die Dividene beträgt auch nur 1/4.


Nachtfotografie

einen durchwegs gelungenen Artikel über Nachtfotografie kommt von neunzehn72.de.

Das macht wirklich Lust auf mehr. Muß demnächst mal wieder meine Kamera auspacken und mit Philipp die Gegend unsicher machen. Fehlt nur noch ein passender Fernauslöser und ein Stativ für meine F828....


Spargelzeit

Eigentlich bin ich keiner großer Spargelfan. Erstens fand ich Spargel bisher nie besonders lecker/herausragend und zweitens kenne ich es auch von zu Hause nicht so sehr.

Heute war ich dann zum Spargelessen eingeladen und durfte erfahren, dass Spargel (selbst leicht roh beim ersten Topf) sehr, sehr lecker sein kann. Ich kann schreiben, dass ich bisher noch nie so guten, dicken Spargel gegessen habe. Bisher schmeckten mir zudem immer nur die dünnen Stangen und dann auch meistens nur die Spitzen.

Dazu gab es übrigens nicht, wie ich es gewohnt bin, Kartoffeln sondern Pfannkuchen. Dachte ich anfangs noch, die wären das Desserts, schmeckten auch sie aus der Eisenpfanne ganz wunderbar (zum Spargel).
Der Spargel war übrigens hier aus der Region und fertig geschält.

Nun macht dieser Eintrag nicht wirklich Sinn, aber ich war einfach so begeistert, wie lecker der Spargel war :-)


Spamsichere Formulare mit PHP

Ich bin gerade mal wieder dabei meine Kontaktformulare spamsicher zu machen. Captchas finde ich nicht wirklich benutzerfreundlich, deshalb fällt diese Möglichkeit weg.

Einen ersten Anhaltspunkt fand ich bei Paul Silver (Link). Er stellte fest, dass viele Spamer in den automatisch ausgefüllten Formularen spezielle Wörter verwenden: Content-Type, cc  oder  bcc. Enthält nun ein abgeschicktes Formular solche Phrasen, wird es verworfen.

Um einen weiteren Schutz zu haben, hatte ich mir überlegt, noch Input-Felder einzubauen. Diese sollen per CSS auf nicht sichtbar gesetzt werden. Wenn nun eines dieser Felder im abgeschickten Formular einen Wert enthält, weiß ich, dass es sich um einen Spamversuch handelt. Ein normaler Internetnutzer sieht ja das Feld nicht und kann es folgich auch nicht ausfüllen.

Hier mein Beispielcode:

function checkforspam() {
if ( preg_match( "/bcc:|Content-Type:/i", implode( $_POST ) ) ){
return 'Y';
} else {
return 'N';
}
}

if (checkforspam() == 'N' & $_POST['emailspam'] == "" & $_POST['namespam'] == "") {

$message = "";
foreach ($_POST as $key => $value) {
$message .= $key.": ".$value."\n";
}

Die Input-Felder emailspam und namespam müssen natürlich im HTML-Formular eingebaut und mit dem Style "display: none" versehen werden.

Es wird sich zeigen, wie lange diese Methode funktioniert. Ich werd auf jeden Fall dranbleiben und ggf. updaten ;-)


Balkonien

Die Sonne scheint. Herlichstes Wetter hier in Mannheim. Nur untätig zuhause rumsitzen is nich. Schon lange will das Projekt "Balkon" in Angriff genommen werden. Heute ist der Tag. Alles läuft wie am Schnürchen: zuerst klingelt der Postbote und bringt den neuen Grill, dann finden wir im Bauhaus noch einen tollen Kunstrasen für unser Außenparadies und zu guter Letzt kommen nachher noch ein paar Freunde zum Balkonienstart ...


Lichtwecker Teil 2

Heute bin ich noch mit dem Fahrrad zu IKEA gefahren, um das letzte "Bauteil" für meinen Lichtwecker - eine Lampe - zu kaufen.
Mit dem Fahrrad dauert eine Strecke eine halbe Stunde, aber irgendwie wollte ich das Projekt endlich abschließen und es hat auch gut geklappt.

Ursprünglich hatte ich bei eBay nach günstigen Lampen geguckt, um dann jedoch über Umwege festzustellen, dass es bei IKEA Lampen auch zum Neupreis (und ohne Versandkosten) günstig sein können. Die Lampe FADO erfüllt zudem genau meine Bedürfnisse, denn sie kommt dem Sonnenschein durch ihre rundes Design (kein Spotlight) recht nahe und kann auch eine starke Lampe bis zu 75 Watt aufnehmen, so dass sie auch hell genug wird.

Nun kann ich meine Schreibtischlampe auch wieder frei nutzen und muss nicht jeden Abend überprüfen, ob sie auch eingeschaltet ist.


Schlüssel-Stopper

So langsam wird es ein bisschen viel mit meinen Produktberichten, aber tja nun.

Der fix-o-moll Schlüssel-Stopper verhindert, dass der Schlüssel aus dem Schloss fällt und ist auch ziemlich günstig. Nachdem ich ihn nun gefunden habe, ist mir auch wieder eingefallen, dass meine Oma früher so etwas hatte, aber die Suche nach der Lösung für das Problem hat schon wieder viel zu lange gedauert.

Allerdings bin ich auch überrascht, dass ich nur einen Anbieter für den Schlüsselloch-Stopper gefunden habe. Selbst bei eBay fand ich nichts.


Anklickbare Objekte in PowerPoint

Für meine Akquise-Training-Präsentation brauche ich eine Landkarte bei der man die Städtenamen durch entsprechendes Anklicken erscheinen lassen kann. Auch für andere Situation, in den man Folienelemente nach Interaktion mit dem Publikum sichtbar machen möchte, ist eine solche Animation sehr sinnvoll.

Nachdem ich zu lange nach der ensprechenden Funktion suchen musste - so langsam dachte ich schon, es würde sie gar nicht geben - möchte ich kurz eine Anleitung veröffentlichen.

Erst einmal musste ich feststellen, dass man mit dem Punkt "Aktion" in PowerPoint nicht weiterkommt, denn diese Funktion ist eher für Links gedacht.
Um anklickbare Bilder, Textfelder und ähnliches zu erhalten, muss man zuerst eine normale Animation für das betroffene Objekt erstellen. Anschließend gelangt man mit Rechtsklick auf die Animation (oder Doppelklick) zu den "Effektoptionen". Im Reiter "Anzeigendauer" kann man mit den Button "Trigger" "Effekt starten beim Klicken auf" aktivieren.

ACHTUNG: Man kann nun Elemente anklicken, die auch gerade sichtbar sind. Wenn man also etwas einblenden (also nicht ausblenden wie in meinem Beispiel) möchte, muss etwas anderes als das betroffene Objekt zum Anklicken auswählen. Ich plaziere dafür einfach ein Textfeld mit weißem Text oder ähnliches hinter das betroffene Objekt.

Wenn ich nun auf die Namen auf der Landkarte klicke, werden sie sichtbar. Ach wie schön:

MTP Landkarte

Sehr sinnvoll ist noch, den Übergang zur nächsten Folie statt per Mausklick per Extra-Button (dafür gibt es unter "Formen" extra "interaktive Schaltflächen" auszulösen. Sonst ist man schnell auf der nächsten Folie ohne dass man schon alle Objekte angezeigt hat.


Lichtwecker selber bauen

Ich muss zugeben, dass ich ohne Termindruck morgens relativ schlecht aus dem Bett komme, obwohl ich schon einen ziemlich lauten Radiowecker nutzte.
Während der Überlegungen wie man das verbessern könnte (einfach früher ins Bett gehen, war bei mir noch niewirklich erfolgreich), bin ich auf verschiedene alternative Wecker gestoßen.

Da gibt es zum Beispiel den aXbo Schlafphasenwecker für 200 Euro. Der soll anhand eines Bewegungssensor, den man am Handgelenk trägt, erkennen, wann man sich in einer leichten Schlafphase befindet und einen dann wecken. Gegebenenfalls also auch vor der gewünschten Weckzeit, damit man nicht wieder in eine andere Schlafphase kommt. Allerdings wird er auffällig oft bei eBay mit dem Kommentar "sehr gut aber für mich ungeeignet" verkauft.

Was ich schon früher einmal mit einer Zeitschaltuhr nachgebaut habe, war ein Lichtwecker ähnlich dem Philips Wake-up Light, das den Sonnenaufgang simuliert/simulieren soll. Jedoch dimmt die normale Zeitschaltuhr nicht, sondern kennt nur zwei Zustände: AN oder AUS, was natürlich auch nicht sondern sanft und allmählich weckt. Auch kosten Lichtwecker teilweise bis zu 190 Euro und das Philips Wake-up Light, was ich mir angeschaut habe, war trotzdem ziemlich billig gebaut.

Nach vielen Google-Suchen à la "Lichtwecker bauen" und "dimmbare Zeitschaltuhr" und bin ich schließlich auf das Haussteuerungssystem FS20 von ELV gestoßen.

FS20 System

Neben vielen anderen Möglichkeiten gibt es die Funksteckdose mit Dimmerfunktion FS20 DI-3. Die bietet eine Soft-On-Funktion (also eine zeitlich einstellbares Hochdimmen) und wird zum Beispiel vom Funktimer FS20 ZE gesteuert. Beides zusammen hat mich 70 Euro gekostet.
Ich habe zwar gerade beim Schreiben dieses Artikels gesehen, dass ich gar nicht mehr so viel gespart habe, da die Preise für Lichtwecker mittlerweile relativ stark gesunken sind (ich hatte den Lichtwecker schon ein bisschen länger auf meiner Wunschliste), aber meine Umsetzung hat doch noch ihre Vorteile. Sie ist sehr flexibel, denn ich kann die Steuerung auch für andere Geräte einsetzen (man könnte auch die Deckenbeleuchtung dimmbar machen) und ich muss mir keine Gedanken machen, wo ich den riesen Lichtwecker hinstelle, denn Lampe und Uhr lassen sind beim FS20 ja räumlich trennen.