PHP
Referenzliste
mail
Mail-Funktionen
Befehl:
bool mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )
Parameter-Liste:
Beschreibung | |
---|---|
Die Formatierung dieses Strings muss nach » RFC 2822 erfolgen. Beispiele:
| |
Betreff der E-Mail. Die Formatierung dieses Strings muss nach » RFC 2047 erfolgen. | |
Die zu sendende Nachricht. Jede Zeile muss durch ein LF-Zeichen (\n) getrennt werden. Außerdem sollten die Zeilen nicht mehr als 70 Zeichen enthalten. (Nur unter Windows:) Falls PHP direkt mit einem SMTP-Server kommuniziert und wenn ein Punkt (.) an einem Zeilenanfang steht, wird dieser Punkt entfernt. Um das zu verhindern, können Sie diese Punkte durch zwei Punkte ersetzen. | |
String, der am Ende des E-Mail-Headers eingefügt werden soll. Dies kann benutzt werden, um zusätzliche Header-Angaben wie From, Cc oder Bcc anzugeben. Falls mehrere solcher zusätzlichen Header-Angaben angegeben werden soll, müssen diese durch ein CRLF-Zeichen (\r\n) getrennt werden. Um eine E-Mail zu senden, muss die E-Mail einen From-Header enthalten. Dies kann entweder durch Setzen eines additional_headers -Parameters oder durch Setzen eines Standardwertes in der php.ini geschehen.Falls dies nicht geschieht, wird eine Fehlermeldung ähnlich wie Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing ausgegeben. Der From: Header setzt unter Windows auch den Return-Path: Header. Wenn E-Mails nicht ankommen, versuchen Sie bitte, nur das LF-Zeichen (\n) zu verwenden. Einige UNIX-MTAs (mail transfer agents) ersetzen leider LF durch CRLF (\r\n) automatisch (wodurch das CR-Zeichen verdoppelt wird, wenn CRLF verwendet wird). Dies sollte aber nur in Ausnahmefällen geschehen, da es gegen » RFC 2822 verstößt. | |
Der additional_parameters -Parameter kann benutzt werden, um zusätzliche Parameter an das Programm zu senden, das für den E-Mail-Versand konfiguriert ist (wenn die sendmail_path-Einstellung verwendet wird). Zum Beispiel kann hiermit die "envelope sender address" (Absenderadresse) gesetzt werden, wenn sendmail mit der -f-Option benutzt wird.Der Benutzer, unter dem der Webserver läuft, sollte als bekannter Benutzer in der sendmail-Konfiguration eingetragen werden, um zu verhindern, dass ein 'X-Warning'-Header zu den E-Mails hingefügt wird, wenn mit dieser Methode (-f) der Absender gesetzt wird. Sendmail-Benutzer finden diese Datei hier: /etc/mail/trusted-users. |
Rückgabewerte:
Gibt
Dass eine E-Mail für den Versand akzeptiert wurde, bedeutet nicht, dass sie auch wirklich den gewünschten Empfänger erreichen wird.
TRUE
zurück, wenn die E-Mail erfolgreich für den Versand akzeptiert wurde, sonst FALSE
.Dass eine E-Mail für den Versand akzeptiert wurde, bedeutet nicht, dass sie auch wirklich den gewünschten Empfänger erreichen wird.
Beschreibung:
Mit mail() kann man eine E-Mail im Text- oder HTML-Format an eine oder mehrere Personen versenden. Sie können in dieser Mail einen Empfänger (to), einen Absender, ein CC , ein BCC und sogar ein Attachment festlegen, die alle beim Versand berücksichtigt werden. Der Betreff (subject) und die Nachricht (message) werden dann mit den obigen Daten versendet. Im Mailheader (additional_headers) können Sie verschiedene Angaben (From, Cc, Bcc etc – siehe Beispiel) machen, welche jeweils durch einen Zeilenvorschub (\n) getrennt sein müssen. Wollen Sie eine E-Mail an mehrere Personen senden, so schreiben Sie sie im to Bereich und trennen die einzelnen Adressen durch ein Komma(,). Im optionalen Parameter additional_parameters können Sie Befehlszeilenargumente an das Mail-Programm übergeben.
Aktiv in Version:
(PHP 4, PHP 5, PHP 7)
Tips:
Tips:
Die folgenden RFCs könnten nützlich für Sie sein: » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 und » RFC 2822.
Verschicken einer E-Mail.
mail() wird benutzt, um eine einfache E-Mail zu versenden:
mail() wird benutzt, um eine einfache E-Mail zu versenden:
Eingabe:
<?php // Die Nachricht $nachricht = "Zeile 1\Zeile 2\Zeile 3"; // Falls eine Zeile der Nachricht mehr als 70 Zeichen enthälten könnte, // sollte wordwrap() benutzt werden $nachricht = wordwrap($nachricht, 70); // Send mail('benutzer@example.com', 'Mein Betreff', $nachricht); ?>
Beschreibung:
Die Windows-Implementierung von mail() unterscheidet sich auf mehrere Arten von der Unix-Implementation. Zum einen benutzt sie kein lokales Programm, um die Mails zu erstellen, sondern sie arbeitet auf Sockets. D.h., dass ein MTA ben�tigt wird, der auf einem Netzwerk-Socket lauscht (entweder auf dem eigenen oder einem entfernten Rechner).
Zum anderen, werden die benutzerdefinierten Header wie From:, Cc:, Bcc: und Date: nicht direkt durch den MTA interpretiert, sondern zun�chst von PHP geparst.
Daher sollte der to-Parameter keine Adresse der Form "Irgendwas <irgendwer@example.com>" enthalten, da dies von PHP m�glicherweise nicht korrekt an den MTA �bergeben werden kann.
Zum anderen, werden die benutzerdefinierten Header wie From:, Cc:, Bcc: und Date: nicht direkt durch den MTA interpretiert, sondern zun�chst von PHP geparst.
Daher sollte der to-Parameter keine Adresse der Form "Irgendwas <irgendwer@example.com>" enthalten, da dies von PHP m�glicherweise nicht korrekt an den MTA �bergeben werden kann.
Beschreibung:
Beschreibung | |
---|---|
4.3.0 (nur Windows) | Alle benutzerdefinierten Header wie (From, Cc, Bcc und Date) werden unterstützt und sind nicht abhängig von der Groß-/Kleinschreibung. (Da benutzerdefinierte Header nicht direkt vom MTA interpretiert werden, sondern von PHP geparst werden, unterstützte PHP < 4.3 nur den Cc-Header, das dort auch abhängig von der Gross-/Kleinschreibung war. |
4.2.3 | Der additional_parameters -Parameter ist im safe_mode deaktiviert; mail() gibt eine Warnung aus und gibt FALSE zurück, wenn Sie den Parameter trotzdem verwenden. |
4.0.5 | Der additional_parameters -Parameter wurde hinzugefügt. |
Verschicken einer E-Mail mit zus�tzlichen Headern.
Hier werden einfache Header gesetzt, um dem MUA (mail user agent, z.B. ein E-Mail-Programm) die From- und die Reply-To-Adressen mitzuteilen:
Hier werden einfache Header gesetzt, um dem MUA (mail user agent, z.B. ein E-Mail-Programm) die From- und die Reply-To-Adressen mitzuteilen:
Eingabe:
<?php $empfaenger = 'niemand@example.com'; $betreff = 'Der Betreff'; $nachricht = 'Hallo'; $header = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); ?>
Beschreibung:
E-Mails mit Anh�ngen und speziellen Inhalten (wie HTML) k�nnen mit dieser Funktion versendet werden. Dazu wird MIME-Encoding verwendet. Weitere Informationen dazu finden Sie in einem � Zend-Artikel und in den � PEAR-Mime-Klassen.
Beschreibung:
Beschreibung | |
---|---|
4.3.0 (nur Windows) | Alle benutzerdefinierten Header wie (From, Cc, Bcc und Date) werden unterstützt und sind nicht abhängig von der Groß-/Kleinschreibung. (Da benutzerdefinierte Header nicht direkt vom MTA interpretiert werden, sondern von PHP geparst werden, unterstützte PHP < 4.3 nur den Cc-Header, das dort auch abhängig von der Gross-/Kleinschreibung war. |
4.2.3 | Der additional_parameters -Parameter ist im safe_mode deaktiviert; mail() gibt eine Warnung aus und gibt FALSE zurück, wenn Sie den Parameter trotzdem verwenden. |
4.0.5 | Der additional_parameters -Parameter wurde hinzugefügt. |
Verschicken einer E-Mail mit einem zus�tzlichen Kommandozeilen-Parameter.
Der additional_parameters-Parameter kann benutzt werden, um zus�tzliche Parameter an das �ber sendmail_path konfigurierte Programm zu senden.
Der additional_parameters-Parameter kann benutzt werden, um zus�tzliche Parameter an das �ber sendmail_path konfigurierte Programm zu senden.
Eingabe:
<?php mail('niemand@example.com', 'Betreff', 'Nachricht', null, '-fwebmaster@example.com'); ?>
Beschreibung:
Bitte beachten Sie, dass die mail()-Funktion nicht dazu geeignet ist, grosse Mengen von E-Mails in einer Schleife zu senden, da die Funktion f�r jede E-Mail ein SMTP-Socket �ffnet und schliesst, was nicht sehr effizient ist.
Um grosse Mengen von E-Mails zu senden, schauen Sie sich bitte die PEAR-Pakete � PEAR::Mail und � PEAR::Mail_Queue an.
Um grosse Mengen von E-Mails zu senden, schauen Sie sich bitte die PEAR-Pakete � PEAR::Mail und � PEAR::Mail_Queue an.
Beschreibung:
Beschreibung | |
---|---|
4.3.0 (nur Windows) | Alle benutzerdefinierten Header wie (From, Cc, Bcc und Date) werden unterstützt und sind nicht abhängig von der Groß-/Kleinschreibung. (Da benutzerdefinierte Header nicht direkt vom MTA interpretiert werden, sondern von PHP geparst werden, unterstützte PHP < 4.3 nur den Cc-Header, das dort auch abhängig von der Gross-/Kleinschreibung war. |
4.2.3 | Der additional_parameters -Parameter ist im safe_mode deaktiviert; mail() gibt eine Warnung aus und gibt FALSE zurück, wenn Sie den Parameter trotzdem verwenden. |
4.0.5 | Der additional_parameters -Parameter wurde hinzugefügt. |
Verschicken einer HTML-E-Mail.
Auch HTML-E-Mails k�nnen mit mail() versendet werden.
Auch HTML-E-Mails k�nnen mit mail() versendet werden.
Eingabe:
<?php // mehrere Empfänger $empfaenger = 'max@example.com' . ', '; // beachten Sie das Komma $empfaenger .= 'moritz@example.com'; // Betreff $betreff = 'Geburtstags-Erinnerungen für August'; // Nachricht $nachricht = ' <html> <head> <title>Geburtstags-Erinnerungen für August</title> </head> <body> <p>Hier sind die Geburtstage im August:</p> <table> <tr> <th>Person</th><th>Tag</th><th>Monat</th><th>Jahr</th> </tr> <tr> <td>Julia</td><td>3.</td><td>August</td><td>1970</td> </tr> <tr> <td>Tom</td><td>17.</td><td>August</td><td>1973</td> </tr> </table> </body> </html> '; // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden $header = 'MIME-Version: 1.0' . "\r\n"; $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // zusätzliche Header $header .= 'To: Simone <simone@example.com>, Andreas <andreas@example.com>' . "\r\n"; $header .= 'From: Geburtstags-Erinnerungen <geburtstag@example.com>' . "\r\n"; $header .= 'Cc: geburtstagsarchiv@example.com' . "\r\n"; $header .= 'Bcc: geburtstagscheck@example.com' . "\r\n"; // verschicke die E-Mail mail($empfaenger, $betreff, $nachricht, $header); ?>
Beschreibung:
Beschreibung | |
---|---|
4.3.0 (nur Windows) | Alle benutzerdefinierten Header wie (From, Cc, Bcc und Date) werden unterstützt und sind nicht abhängig von der Groß-/Kleinschreibung. (Da benutzerdefinierte Header nicht direkt vom MTA interpretiert werden, sondern von PHP geparst werden, unterstützte PHP < 4.3 nur den Cc-Header, das dort auch abhängig von der Gross-/Kleinschreibung war. |
4.2.3 | Der additional_parameters -Parameter ist im safe_mode deaktiviert; mail() gibt eine Warnung aus und gibt FALSE zurück, wenn Sie den Parameter trotzdem verwenden. |
4.0.5 | Der additional_parameters -Parameter wurde hinzugefügt. |
Versenden einer Mail
Eingabe:
<?PHP /* Empfänger */ $empfaenger = array('Damir<mail@selfphp.com>'); /* Empfänger CC */ $empfaengerCC = array('Damir CC<mail@selfphp.com>'); /* Empfänger BCC */ $empfaengerBCC = array('Damir BCC<mail@selfphp.com>'); /* Absender */ $absender = 'Administrator SELFPHP<selfphp@selfphp.com>'; /* Rueckantwort */ $reply = 'Administrator SELFPHP<selfphp@selfphp.com>'; /* Betreff */ $subject = 'Info Mail von SELFPHP'; /* Nachricht */ $message = '<html> <head> <title>SELFPHP - Mail Beispiel</title> </head> <body> <table width="214" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="47">PHP5</td> <td width="56"> </td> <td width="99"> </td> </tr> <tr> <td> </td> <td>SELFPHP</td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td>www.selfphp.de</td> </tr> </table> </body> </html> '; /* Baut Header der Mail zusammen */ $headers .= 'From:' . $absender . "\n"; $headers .= 'Reply-To:' . $reply . "\n"; $headers .= 'X-Mailer: PHP/' . phpversion() . "\n"; $headers .= 'X-Sender-IP: ' . $REMOTE_ADDR . "\n"; $headers .= "Content-type: text/html\n"; // Extrahiere Emailadressen $empfaengerString = implode(',', $empfaenger); $empfaengerCCString = implode(',', $empfaengerCC); $empfaengerBCCString = implode(',', $empfaengerBCC); $headers .= 'Cc: ' . $empfaengerCCString . "\n"; $headers .= 'Bcc: ' . $empfaengerBCCString . "\n"; /* Verschicken der Mail */ mail($empfaengerString, $subject, $message, $headers); ?>
Ausgabe:
Versendet die Email an alle Empf�nger
Beschreibung:
Beschreibung | |
---|---|
4.3.0 (nur Windows) | Alle benutzerdefinierten Header wie (From, Cc, Bcc und Date) werden unterstützt und sind nicht abhängig von der Groß-/Kleinschreibung. (Da benutzerdefinierte Header nicht direkt vom MTA interpretiert werden, sondern von PHP geparst werden, unterstützte PHP < 4.3 nur den Cc-Header, das dort auch abhängig von der Gross-/Kleinschreibung war. |
4.2.3 | Der additional_parameters -Parameter ist im safe_mode deaktiviert; mail() gibt eine Warnung aus und gibt FALSE zurück, wenn Sie den Parameter trotzdem verwenden. |
4.0.5 | Der additional_parameters -Parameter wurde hinzugefügt. |
Mail-Funktionen