Archive for November, 2007

PHP und Postfix: Return-path setzen

Wenn ein Webserver E-Mails verschickt, kann es sinnvoll sein, die Absender- und Rückläufer-Adresse zu trennen.

Der eigentliche Absender, also der, der in E-Mail-Programmen angezeigt werden soll, wird in Form des From-Headers gesetzt. Hat eine Nachricht nur einen From-Header, so gehen sowohl Antworten, als auch Meldungen über den Status der Zustellung oder Rückläufer an diese Adresse.

Es kann sinnvoll sein, diese beiden Felder zu trennen. Gründe kann es dafür verschiedene geben:

  • Für die Domain der From-Adresse existiert ein SPF-Eintrag, der den aktuellen Server nicht zulässt
  • Rückläufer sollen nicht vom “eigentlichen” Absender bearbeitet werden
  • Die Website schickt Mails im Auftrag der Benutzer an den Betreiber. Diese will direkt antworten können, die Benutzer sollen aber im Problemfall keine Meldung über die fehlgeschlagene Zustellung erhalten.

Das Ziel für Rückläufer wird über die Kopfzeile Return-path bestimmt. Standardmäßig setzt Postfix sort den System-Benutzernamen (z.B. www) – at – %myorigin ein, also z.B. www@myserver.local. Man kann nun Postfix beibringen, diese Adresse auf die des Administrators umzuschreiben, allerdings gibt es Fälle, in denen hier eine andere Adresse stehen muss. Die Lösung des Problems liegt in den Parametern des PHP-Befehls mail:

Als letzten Parameter kann man dort Optionen angeben, die an den Sendmail-Befehl weitergereicht werden. Dort kann man einfach mit -femail@example.com den Return-path festlegen:
mail("info@example.com", "Betreff", "Text", "From: absender@example.com", "-fbounce@example.com");

IE7 does not display Google Maps under W2K3

After I installed Internet Explorer 7 on a Windows Server 2003 machine, Google Maps did not work anymore. The page loaded partly but there maps did not load. After playing around with security zones which did not help anything I discovered that there are special security settings for Internet Explorer which can be disabled easily – if neccessary (believe me, I had a reason):

  • Go to Control Panel
  • Add or Remove Programs
  • Add/Remove Windows Components
  • Disable the entry Internet Explorer Enhanced Security Configuration

Here’s a screenshot:
Disable Enhanced Sec for IE7

After that (re)start IE7 and Google Maps should load.

checkurl: Prüfen, ob ein Wort auf einer Webseite vorkommt

Mit dem folgenden Bash-Script kann man prüfen, ob auf einer Webseite ein bestimmtes Wort vorkommt:

#!/bin/bash

if [ $# -ne 2 ]; then
        echo "Usage: checkurl [URL] [string to search for]"
        echo
        echo "Exits with:"
        echo "    0=string found"
        echo "    1=string not found"
        exit 100
fi

cres=`curl -s $1 | grep -c $2`

if [ $cres -lt 1 ]; then
        echo "not found"
        exit 1
else
        echo "found"
        exit 0
fi

Voraussetzung: curl sollte installiert sein