(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
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:
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.
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:
CRLF als
Zeilenschaltung verwendet werden!mail()
übergeben.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.
Sollte der E-Mail-Versand nicht funktionieren, können die folgenden Hinweise vielleicht weiterhelfen:
LF anstatt
CRLF als Zeilenschaltung. Ersetzen Sie dazu in der Datei
mail-drudge.php in Zeile 37
define('MAILDRUDGE_NEW_LINE', "\r\n"); das
"\r\n" durch "\n". (Im E-Mail-Text muß weiterhin
CRLF benutzt werden!)mail() nötig.
Dieser kann der Funktion maildrudge_create_mail() als
$addparam übergeben werden. Achten Sie dazu bitte auf Hinweise Ihres
Webhosters.mail() übergeben.mail()-Funktion nun wieder in dem
subject- und nicht mehr in dem
additional_headers-Parameter übergeben, da ansonsten bei einigen
PHP-Versionen zusätzlich ein weiterer, leerer Subject-Header gesendet wird.mail()-Funktion übergeben.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!
Fragen zur Benutzung des Skripts bitte im Forum stellen!