Das Datenschutzportal

Get Adobe Flash player
1 3 4 5

Zättel und Stift – hää??

Das war ungewohnt, und heute gleich zwei mal!

Zwei Bekannten wollte ich heute etwas mitteilen. Einmal meine Bankverbindung, da mir etwas überwiesen werden sollte, und einmal wenige Notizen zu einem Event. Beiden wollte ich sagen, dass ich die Informationen per Email schicke, aber schneller als ich das aussprechen konnte, waren sie mit Block und Stift zur Stelle und ich diktierte.

Das komischste daran ist meine Verblüffung in dieser Situation. In der Netzwelt, ich der wir leben, wäre mir der Gedanke an Zettel und Stift gar nicht gekommen und was soll ich sagen: es funktionierte trotzdem einwand- und fehlerfrei!

PHP und die Anführungszeichen

Immer wieder zeigt sich, dass PHP-Programmierer den Unterschied zwischen doppelten und einfachen Anführungszeichen nicht kennen. Dabei ist er erstens nicht schwierig zu verstehen und sollte zweitens durchaus bekannt sein, da dadurch – spätestens bei größeren Projekten – die Performance beeinflusst werden kann. Also, grundlegend gilt: PHP versucht einen String, der in doppelten Anführungszeichen steht, zu interpretieren, während der in einfachen schlicht ausgegeben wird. Hier ein paar Beispiele gleich mal vorweg:

$var = 'die Variable';
 
// Ausgabe 1:
echo "Ausgabe 1 gibt $var so aus.";
 
// Ausgabe 2:
echo 'Ausgabe 2 gibt $var so aus.';
 
// Ausgabe 3:
echo 'Ausgabe 3 gibt ' . $var . ' so aus';

Dies würde im Browser zu folgenden Ausgaben führen:

Ausgabe 1 gibt die Variable so aus.
Ausgabe 2 gibt $var so aus.
Ausgabe 3 gibt die Variable so aus.

Ihr seht: was innerhalb von einfachen Anführungszeichen steht, wird direkt so ausgegeben, wie es da steht. Es werden keine Variablen durch ihre Werte ersetzt. Na wenn das so ist, ist man geneigt zu sagen, dann schreibe ich alle meine Ausgaben zwischen doppelte Hochstriche. So einfach ist es aber leider nicht. Klar, was den Comfort angeht, mag das vielleicht zutreffen. Es gibt aber einen weit schwerwiegenderen Grund, die doppelten Anführungszeichen eher im Ausnahmefall zu benutzen. Grund: Der PHP-Interpreter sucht natürlich bei Strings innerhalb von “ und “ nach Variablen, die es zu interpretieren gilt. Profan ausgedrückt: damit hat er richtig Arbeit, während er Zeichensätze zwischen ‚ und ‚ nicht weiter untersucht, sondern einfach ausgibt. Performance ist das, was ihr gewinnt, wenn ihr die einfachen Hochstriche verwendet! Natürlich muss in einem solchen Fall die Variable, so doch mal eine ausgegeben werden muss, über den Punkt – der Verkettungsoperator in PHP – eingebunden werden. Das mag zwar vier Tastendrücker mehr bedeuten, hat aber meines Erachtens neben der Performance auch noch den Vorteil, dass das Skript übersichtlicher wird. Habt ihr tatsächlich mehrere Ausgaben mit vereinzelt integrierten Variablen in eurem Skript, so fallen diese bei der Schreibweise mit den einfachen Anführungszeichen deutlicher ins Auge. Braucht man innerhalb einer so gebauten Ausgabe ein ‚, so muss dieses natürlich maskiert werden. Dies geschieht in PHP mit einem voran gestellten Backslash (also \). Ihr tut also gut daran, euch das so anzugewöhnen.

MTA – Standards müssen her

Wer sich viel mit Email-Technik beschäftigt, der muss sich zwangsweis auch mit MTA’s befassen. Je nachdem, ob man einen Server selbst aufsetzt oder einen fertigen in Gebrauch nimmt, muss man sich selbst für einen Mail-Transfer-Agent entscheiden oder sich mit dem vorgesetzten auseinandersetzen.

Lange Zeit war Sendmail die Nummer 1 der Mailabwickler. Dies lag auch daran, dass seine Wurzeln bis in die 80er Jahre zurückreichen und es lange schlicht keine Alternative gab. Es gab ja auch keinen Grund dazu, denn Sendmail war zuverlässig und erfüllte alle Anforderungen.  In den 90er Jahren kamen dann aber doch Konkurrenten auf den Markt, die viele Kritikpunkte in Sendmail sahen, allen voran Aspekte der Sicherheit. Immerhin gab es zu Entstehungszeiten von Sendmail noch keine Spam-Problematik

Eine dieser Entstehungen ist Qmail. Qmail ist streng modular aufgebaut und wird auch nicht standardmäßig im Root-Verzeichnis des Servers installiert (wie etwa Sendmail).  Die Verankerung im Root-Verzeichnis legt einem Angreifer alle Wege offen, sobald er die Hürde des MTA genommen hat. Der modulare Aufbau sorgt zusätzlich dafür, dass der Assistent stabiler läuft und ein ausfallender Abschnitt, also ein Modul, nicht gleich für den Absturz des Mailservers sorgt.

Aber ich will hier eigentlich gar keinen MTA-Vergleich oder sonst eine Bewertung abliefern. Auch ist die Liste der aktiven MTA’s weit länger als die zwei bisher genannten. Dazu ist aber Wikipedia da.Wie der Titel schon sagt, möchte ich mich für eine Standardisierung aussprechen. Jeder Mail-Server gibt für jeden Task eine Antwort ab. Diese finden sich etwa in den zugehörigen Logfiles. Sie werden aber auch etwa bei Bounce-Mails an den Versender einer Email abgeschickt. Hierfür nutzt jeder MTA bestimmte Codes, Ausdrücke oder ganze Sätze. Liest man diese Responses durch, wirkt es oft schon sympathisch menschlich, was der Server da so von sich gibt. Leider nur ist es so, dass unterschiedliche Systeme für die gleichen Szenarien auch unterschiedliches Feedback geben.

Für den Fall, dass der eigene Server beobachtet werden soll, ist das ja nicht weiter schlimm: man lernt, mit seinem Mailer zu kommunizieren. Was aber machen diejenigen unter uns, die etwa groß im Email-Marketing-Geschäft stecken? Werden zahlreich Newsletter verschickt, so ist ein anständiges Bounce-Management eine bereichernde Geschichte und für jeden PHP-Entwickler auch leicht automatisierbar, wäre da nicht diese Unterschiedlichkeit! Das ankommende Feedback sollte für einen Mailprofi in Softbounce und Hardbounce kategorisiert werden können. Denn abhängig davon müsste auf unterschiedliche Weise mit dem potentiellen Empfänger bzw. seiner Email-Adresse umgegangen werden.

Leider kommt man dabei nicht drum herum, Versuche und Ausnahmen zu programmieren, in der Hoffnun, jeden Fall abfangen zu können. Perfekt wird das aber kaum werden können.

Dabei ist es sogar so, dass es einen RFC-Standard dafür gibt, er sollte halt nur auch konsequent genutzt werden: RFC 1893.  Von Qmail wird dieser Standard beispielsweise eingesetzt. Das schöne daran ist auch: ein bestimmtes Ereignis wird nicht nur in einem festgelegten Wortlaut beschrieben, es erhält auch einen festgelegten numerischen Code.

Eine einheitliche Orientierung würde viel Ärger, Arbeit und Ungewissheit ersparen.

1 3 4 5