Dienstag, 16. Oktober 2007
Gestern Abend kam ich aus einem mir unerklärlichen Grund auf die Idee, den Quellcode eines von Partyguide automatisch versandten Mails unter die Lupe zu nehmen (in Apple Mail: Apfel + Alt + U):
Return-Path: <partyguide@partyguide.ch>
Received: from all01.mx.genotec.ch (unknown [IPv6:2001:1b50::82:195:224:51])
by gmc-pop-bsd-014.genotec.ch (Postfix) with ESMTP id 94C481739A51
for <spam@emeidi.com>; Tue, 16 Oct 2007 00:34:09 +0200 (CEST)
Received: from partyguide.ch (defiant.partyguide.ch [217.150.245.69])
by all01.mx.genotec.ch (Postfix) with ESMTP id C634B558B8E
for <spam@eMeidi.com>; Tue, 16 Oct 2007 00:31:23 +0200 (CEST)
Received: (qmail 3397 invoked from network); 15 Oct 2007 22:33:57 -0000
Received: from unknown (HELO nebula.partyguide.ch) (192.168.0.13)
by defiant.partyguide.ch with SMTP; 15 Oct 2007 22:33:57 -0000
Received: by nebula.partyguide.ch (Postfix, from userid 507)
id 238C850D831; Tue, 16 Oct 2007 00:33:57 +0200 (CEST)
To: spam@eMeidi.com
Subject: ******* hat heute Geburtstag!
From: noreply@partyguide.ch<noreply@partyguide.ch>
X-Mailer: PHP/5.2.3
X-Sender-IP:
Content-Type: text/html
Message-Id: <20071015223357.238C850D831@nebula.partyguide.ch>
Date: Tue, 16 Oct 2007 00:33:57 +0200 (CEST)
X-GIC-MailScanner-SpamCheck: not spam, SpamAssassin (not cached,
score=-0.045, required 10, BAYES_00 -2.60, FORGED_RCVD_HELO 0.14,
HTML_30_40 0.37, HTML_MESSAGE 0.00, HTML_MIME_NO_HTML_TAG 1.08,
MIME_HEADER_CTYPE_ONLY 0.00, MIME_HTML_ONLY 0.00, NO_REAL_NAME 0.96)
<font face="verdana" size="2">Hallo mad4you!
<br><br>
Dein PartyGuide.ch myFriend ******* hat heute Geburtstag!<br>
Vergiss nicht zu gratulieren :-)
<br><br>
Hier gehts zum Profil von *******:<br>
<b><a href="http://my.PartyGuide.ch/*******">http://my.PartyGuide.ch/*******</a></b>
<br><br>
Dies ist ein automatisch generiertes eMail...
<br><br>
Liebe Grüsse<br>
PartyGuide.ch Team
</font>
Einige Bemerkungen:
- Fangen wir mit der einzigen vorbildlichen Eigenschaft des Mails an: Return-Path ist gesetzt. Tritt beim Versand des Mails ein technisches Problem auf, kriegt dies Partyguide über die Adresse partyguide@partyguide.ch mit.
Würde man diese Adresse als Absender einsetzen, würden wohl täglich unzählige unerwünschte Antworten von Endbenutzern auf die erwähnte Adresse eintrudeln, die gedankenlos den Antworten-Knopf drücken. Deshalb noreply@partyguide.ch im From:-Feld.
- Irgendwie sieht aber genau dieses From-Feld nicht ganz koscher aus: From: noreply@partyguide.ch<noreply@partyguide.ch> Sollte da nicht noch ein Abstand zwischen dem anzuzeigenden Namen und dem < zu stehen kommen? Da die Information aber sowieso redundant ist, sollte man den Namen einfach weglassen und nur <noreply@partyguide.ch> schreiben …
- Wo bleibt der html und der body-Tag (inkl. End-Tags)?! Wenn das Mail als Content-Type: text/html versandt wird, sollte es auch den minimalsten Anforderungen des HTML-Standards genügen. Der Entwickler hat – wieder einmal – geschlampt. Nebenbei: Wieso muss für einen solchen Text überhaupt ein HTML-Mail versandt werden? Nur damit die URL fett eingefärbt werden kann?
Man beachte X-GIC-MailScanner-SpamCheck (SpamAssassin), der sich auch über die fehlenden Tags beschwert (HTML_MIME_NO_HTML_TAG) und dafür satte 1.08 Spam-Punkte vergibt
- X-Mailer: PHP/5.2.3 – wieso um Gottes willen greift man nicht auf OSS-Klassen wie den ausgereiften (und von Profis programmierten) PHPMailer zurück, die das Versenden von HTML-Mails mit alternativem Plain-Text-Body und Attachment zum Klacks machen?
- Immerhin verwendet man nicht mehr PHP 3.x, sondern 5.2.3. Der erste Schritt in die Absicherung der Plattform ist somit getan. Nun kommt aber noch der deutlich grössere Teil der Arbeit: Der Code-Audit und damit einhergehend neu schreiben von mehrere Jahre altem Spaghetti-Code …
Ein zufälliger Blick in ein Nebenprodukt von Partyguide – und man wird sich wieder einmal bewusst, wie gering die Ambitionen der Programmierer sind (waren?), standardkonformen und sauberen Code vorzulegen. Aus meiner Sicht ein klassisches Beispiel von „Internet-Frevel“ und symptomatisch für das Portal. Nur weil ein Script funktioniert und auf dem Internet Explorer und in Microsoft Outlook anständig gerendert wird, heisst das noch lange nicht, dass der Code auch professionellen Anforderungen standhält.
Jason und Argonauten: Das ist eure Visitenkarte, die euer „Unternehmen“ Techies unter die Nase hält – kein Wunder, hat sich Tamedia für die Zusammenarbeit mit dem geringsten aller Übel, Tilllate, entschieden …