Mail-Drudge V1.0.2 - Dokumentation

(c) Copyright 2006/2007 Carsten Meier

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Inhaltsverzeichnis

  1. Einleitung
  2. Funktionsweise
  3. Beispiele
  4. Problembehebung
  5. Änderungen zu Vorversionen
  6. Kontakt

1 Einleitung

Mail-Drudge ist eine in PHP geschriebene Funktionssammlung zum einfachen Versenden von RFC 2822-konformen E-Mails. Der Nachrichtenkörper und die Header-Felder werden gemäß RFC 2045 und RFC 2047 base64-kodiert. Dies ermöglicht die Verwendung von beliebigen Zeichenkodierungen und das Versenden von Binärformaten. Außerdem entfällt die Zeilenlängenbeschränkungen auf 998 Zeichen. Die E-Mail-Header werden automatisch erstellt und die dazugehörigen Eingabeparameter geprüft, um dem Missbrauch durch Header-Injections vorzubeugen. Das Ersetzen von Textbausteinen in E-Mail-Vorlagen ist ebenfalls möglich.

Bei der vorliegenden Fassung handelt es sich um Version 1.0.2 vom 28.3.2007. Aktuelle Informationen finden Sie auf der Mail-Drudge-Homepage. Die folgenden Dateien sind in dem Archiv enthalten:

mail-drudge.php
Die Mail-Drudge-Funktionsbibliothek
LICENSE
Eine Kopie der GNU Lesser General Public License V2.1
LIESMICH.html
Die Datei, die Sie gerade lesen

Es wird PHP >= 4.3.0 benötigt. Das Skript wurde unter den PHP-Versionen 4.3.3 und 5.1.4 mit den Laufzeit-Optionen register_globals off und allow_call_time_pass_reference off getestet.

2 Funktionsweise

Um die Mail-Drudge-Funktionen zu nutzen, kopieren Sie einfach die Datei mail-drudge.php in ein Verzeichnis innerhalb Ihres PHP-Include-Pfades und binden die Datei mittels include ein.

Es sind im wesentlichen drei für den Endbenutzer vorgesehene Funktionen vorhanden: Zwei für den eigentlichen E-Mail-Versand und eine weitere um Platzhalter in E-Mail-Vorlagen durch Werte zu ersetzen.

function &maildrudge_create_mail(
	$toaddr, $toname,
	$fromaddr, $fromname,
	$subject, $body,
	$contenttype = 'text/plain; charset=iso-8859-1',
	$charset = 'iso-8859-1',
	$addparams = '',
	$replytoaddr = NULL, $replytoname = NULL,
	$ccaddr = NULL, $ccname = NULL,
	$bccaddr = NULL, $bccname = NULL)

Erzeugt eine E-Mail und gibt diese per Referenz zurück.

function maildrudge_send_mail(&$mail)

Versendet die zuvor erstellte E-Mail. Der Erfolg wird mit dem zurückgegebenen Wahrheitswert angezeigt.

function &maildrudge_replace_template_vars(
	&$templ, &$vars, $varprefix = '%%', $varpostfix = '%%')

Ersetzt in einem Text Vorkommen von Platzhaltern durch Variableninhalte. Die Platzhalter werden aus dem Präfix, einem Arrayschlüssel in $vars und dem Suffix gebildet, und durch die Werte unter dem jeweiligen Arrayschlüssel ersetzt. Der Text mit den Ersetzungen wird per Referenz zurückgegeben.

Bei der von der Funktion maildrudge_create_mail() zurückgegebenen E-Mail handelt es sich um ein Array, in das die übergebenen Werte eingetragen werden. Die Argumente $toaddr, $toname, $fromaddr, $fromname, $replytoaddr, $replytoname, $ccaddr, $ccname, $bccaddr und $bccname enthalten jeweils E-Mail-Adressen, wobei jedoch die eigentlichen E-Mail-Adressen und die Namenskomponenten derselben getrennt angegeben werden. Um z.B. eine E-Mail an die Adresse "Hans Dampf" <hansi_d@example.com> zu senden, muß $toaddr auf 'hansi_d@example.com' und $toname auf 'Hans Dampf' gesetzt werden. Die Namenskomponente ist optional und darf im Gegensatz zur Adresse auch Umlaute enthalten.

Die Adress- und Namensfelder können anstatt Strings auch Arrays enthalten, um z.B. eine E-Mail an mehrere Empfänger zu senden. Dabei muß für zusammengehörige Adressen und Namen jeweils der gleiche Array-Schlüssel verwendet werden. Eine Ausnahme bilden jedoch die Felder $fromaddr und $fromname: Hier ist nur die Angabe von Strings erlaubt, da eine E-Mail nicht mehrere Absender haben kann.

Hier eine Übersicht der restlichen Parameter:

$subject
Das Betreff-Feld der Nachricht. Es kann eine beliebige Länge haben und auch Umlaute enthalten, da es base64-kodiert wird.
$body
Der Nachrichtenkörper, welcher automatisch base64-kodiert wird. Falls hier ein Text übergeben wird, so muß zwingend CRLF als Zeilenschaltung verwendet werden!
$contenttype
Der MIME-Typ des Nachrichtenkörpers. Der Vorgabewert ist 'text/plain; charset=iso-8859-1'. Zum Versenden von HTML-E-Mails kann hier beispielsweise 'text/html; charset=iso-8859-1' angegeben werden.
$charset
Die Angabe der Zeichenkodierung für die Header-Felder. 'iso-8859-1' ist der Vorgabewert.
$addparams
Der String wird, wenn dieser nicht leer ist, als fünfter Parameter (additional_parameters) an die PHP-Funktion mail() übergeben.

3 Beispiele

Das folgende Beispiel versendet eine E-Mail:

// Parameter setzen

$toaddr = 'hansi_d@example.com';	// Empfänger
$toname = 'Hans Dampf';
$fromaddr = 'waldi@example.com';	// Absender
$fromname = 'Hansi Hinterwäldler';

$subject = 'Dies ist der Betreff mit Umlauten und Sonderzeichen ÜÖÄ@@@@ !';
$body = "Dies ist der Nachrichtentext\r\n".
	"mit CRLF als Zeilenschaltung.";

// Nachricht erzeugen

$mail = &maildrudge_create_mail(
	$toaddr, $toame,
	$fromaddr, $fromname,
	$subject, $body);

// Nachricht versenden

if(maildrudge_send_mail($mail))
	print 'Nachricht wurde verschickt';
else
	print 'Nachrichtenversand ist fehlgeschlagen';

Soll die Nachricht an mehrere Empfänger gesendet werden, so kann die Array-Form für Adressen benutzt werden:

$toaddr = array('hansi_d@example.com', 'marvin@example.com');
$toname = array('Hans Dampf', 'Marvin');

Die Funktion maildrudge_replace_template_vars() bietet die Möglichkeit, Textbausteine in E-Mail-Vorlagen zu ersetzen:

$body = "Der Spruch des Tages:\r\n".
	"%%motd%%\r\n".
	"Vielen Dank %%name%%.";

$values = array(
	'motd' => 'Sport ist Mord',
	'name' => 'Herr Müller'
);

$body = &maildrudge_replace_template_vars($body, $values);

Es wird die folgende Nachricht erzeugt:

Der Spruch des Tages:
Sport ist Mord
Vielen Dank Herr Müller.

4 Problembehebung

Sollte der E-Mail-Versand nicht funktionieren, können die folgenden Hinweise vielleicht weiterhelfen:

5 Änderungen zu Vorversionen

Version 1.0.2

Version 1.0.1

6 Kontakt

Aktuelle Informationen und die neueste Version finden Sie auf der Mail-Drudge-Homepage. Wenn Sie Fragen zu dem Skript stellen, oder einen Kommentar abgeben möchten, können Sie dies im Mail-Drudge-Forum tun. Bitte geben Sie bei Problemen immer die verwendeten PHP- und Skript-Versionen sowie das verwendete Betriebssystem an!

Dieses Skript ist nicht vom Himmel gefallen! Wenn Sie auch in Zukunft aktualisierte Versionen und weitere Skripte kostenlos zur Verfügung gestellt bekommen möchten, unterstützen Sie den Autor bitte mit einem Link zu http://www.internalscripts.de/ auf Ihrer Website. Vielen Dank!

Anschrift des Autors

Carsten Meier
Under de Diek 19
D-26757 Borkum
Deutschland

Website: Internal Scripts - PHP-Skripte
E-Mail: [cm at internalscripts dot de]

Fragen zur Benutzung des Skripts bitte im Forum stellen!