|
E-Mails mit PHP versenden
Es gibt viele verschiedene Arten E-Mails zu versenden. Wenn es sich nur um
kleine Statusmails handelt, dann reicht vermutlich die einfache mail();Funktion von PHP. Möchte man aber zum Beispiel über ein POP3 Postfach
senden, muss man anders vorgehen. Wenn dann noch Bilder, Anhänge und
komplett designte HTML Mails in Spiel kommen, dann sollte man auf kompliziertere
aber im Endeffekt dafür komfortablere Lösungen zurückgreifen.
Es gibt für alles auch vorgefertigte Lösungen. Man muss nicht immer
das Rad neu erfinden. Viele Sachen werden auch als freeware angeboten - zur
freien Benutzung.
Gerade auch die PEAR Klassen (Klick) sind hier sehr zu empfehlen.
Diese sind nicht auf jedem Server installiert, aber heutzutage auch schon als
Standard anzusehen. Der Vorteil daran wenn man solche öffentlichen
Standardpakete nutzt ist, dass wenn Bugfixes gemacht werden man nur die Klasse
austauschen braucht. Man hat damit praktisch fast keine Arbeit und ist immer
auf dem neuesten konformen Stand.
Mails mit der PHP Funktion mail();
Die wohl einfachste Art einfache E-Mails zu versenden - der PHP mail(); Befehl.
Hier ein einfaches Beispiel:
Mail im Textformat versenden: (Beispiel von php.net)
<?php $to = "nobody@example.com"; $subject = "the subject"; $message = "hello"; $headers = "From: webmaster@example.com" . "\r\n" . "Reply-To: webmaster@example.com" . "\r\n" . "X-Mailer: PHP/" . phpversion();
mail($to, $subject, $message, $headers); ?>
|
Mail im HTML Format mit mail(); versenden (Beispiel von php.net)
<?php // mehrere Empfänger $to = 'aidan@example.com' . ', '; // note the comma $to .= 'wez@example.com';
// Betreff $subject = 'Birthday Reminders for August';
// Nachricht $message = ' <html> <head> <title>Birthday Reminders for August</title> </head> <body> <p>Here are the birthdays upcoming in August!</p> <table> <tr> <th>Person</th><th>Day</th><th>Month</th><th>Year</th> </tr> <tr> <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> </tr> <tr> <td>Sally</td><td>17th</td><td>August</td><td>1973</td> </tr> </table> </body> </html> ';
// Um HTML Mails zu versenden, muss der Content Type gesetzt sein $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers $headers .= 'To: Mary <abc@def.com>, Kelly <ad@efg.com>'."\r\n"; $headers .= 'From: Birthday Reminder <birthday@birth.com>' . "\r\n"; $headers .= 'Cc: birthdayarchive@example.com' . "\r\n"; $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
// Mail it mail($to, $subject, $message, $headers); ?>
|
E-Mails mit PEAR versenden
Genaue Infos über das Versenden und die Möglichkeiten von PEAR Mail
erhaltet Ihr auf deren Webseite (Klick).
<?phpphp include('Mail.php'); include('Mail\mime.php');
$message = new Mail_mime(); $text = file_get_contents("mail_text.txt"); $html = file_get_contents("mail_html.html");
$message->setTXTBody($text); $message->setHTMLBody($html);
$message->addHTMLImage("button.png");
$body = $message->get(); $extraheaders = array("From"=>"ich@domain.de", "Subject"=>"Betreff"); $headers = $message->headers($extraheaders);
$mail = Mail::factory("mail"); $mail->send("empfaenger@domain.de", $headers, $body); ?>
|
Wenn PEAR installiert ist, wird euer PHP den Include finden, auch wenn Ihr diesen
nicht in eurem Verzeichnis seht. Diese befinden sich normalerweise in einem anderen
Verzeichnis als in eurem Webverzeichnis.
In diesem Beispiel wird eine neue E-Mail erstellt, eine TEXT E-Mail UND! eine HTML
E-Mail in diese eine E-Mail getan. Zusätzlich wird noch eine Grafikdatei
(button.png) hinzugefügt. Nach der Angabe woher die Mail kommt und wohin diese
gehen soll wird diese versendet. Würde man das alles jetzt selbst programmieren,
hätten wir hier seitenlangen Quelltext.
Alternativ kann man mit PEAR auch über POP3 Postfächer E-Mails
versenden. Wenn man sich einmal erst mit solchen Standardklassen befasst hat
möchte man diese nicht missen :) Man kann sich in seinem eigenen Code
auf das konzentrieren, wofür man sein eigenes Programm programmiert und
muss sich nicht das Rad ständig neu erfinden.
|