Ich hab mich in letzter Zeit bisschen mit dem PHP Mailer beschäftigt. Das Tool dient dazu E-Mails zu generieren und zu versenden. Es ist recht einfach und eigentlich nicht schwer zu verstehen.

Und da dachte ich mir, wenn ich das Teil schon benutzte, kann ich ja mal ein kleines Tutorial schreiben :)

Als aller erstes benötigt man die eigentliche PHP – Datei die den größten Teil der Arbeit übernimmt.
Die class.phpmailer.php (hier als txt-Datei). Diese Datei enthält bestimmte Funktionen und Variablen.

Nun gehen wir weiter. Als nächstes erstellen wir uns eine Datei wo wir z.B. ein Bestellformular einbinden möchten.

So könnte diese aussehen:
<form method="post" action="mailer.php">
<table width="200px" cellspacing="2px" cellpadding="2px" border="0">
<tr>
<td height="25px">Firma:</td>
<td height="25px"><input type="text" maxlength="50" size="30" name="company"/></td>
</tr>
<tr>
<td height="25px">Name:</td>
<td height="25px"><input type="text" maxlength="50" size="30" name="name"/></td>
</tr>
<tr>
<td height="25px">Adresse:</td>
<td height="25px"><input type="text" maxlength="50" size="30" name="street"/></td>
</tr>
<tr>
<td height="25px">Telefon:</td>
<td height="25px"><input type="text" maxlength="50" size="30" name="phone"/></td>
</tr>
<tr>
<td height="25px">E-Mail:</td>
<td height="25px"><input type="text" maxlength="50" size="30" name="mail"/></td>
</tr>
</table>
<table>
<tbody><tr>
<td height="50px"><input type="submit" value="Senden" /></td>
<td height="50px"><input type="reset" value="Zurücksetzten"/></td>
</tr>
</tbody>
</table>
</form>

Nun brauchen wir eine Datei die den Betreff, den Empfänger, Absender und die Nachricht generiert bzw. beinhaltet.

Ich hab diese Datei mailer.php genannt:
<?php
$empfaenger = $_POST['mail'];
require("class.phpmailer.php");
$mail = new PHPMailer();

Ich hab für mich als erstes eine Variable angelegt, dort wird die eingetragene E-Mail Adresse gespeichert. Die gebrauche ich gleich nochmal. Als nächstes wird die class.phpmailer Datei eingebunden und die Funktion “PHPMailer” wird gestartet.

$mail->From = "email@adresse.de";
$mail->FromName = "Roman Opalko";
$mail->AddAddress($empfaenger);
$mail->Subject = "Bestellung bei Max Mustermann";

In dem Teil werden die eigentlichen Informationen zur E-Mail bestimmt.
“From” dient dazu, anzuzeigen von wem die E-Mail kommt und als “FromName” wird der Name angegeben, der im Mailprogramm angezeigt werden soll.

Die “AddAddress” dient dazu, das Bestellformular auch an den zu schicken, der das Formular ausgefüllt hat. Dort verwende ich die Variable $empfaenger.

“Subject” ist der Betreff der E-Mail.

Als nächstes wird geprüft ob das E-Mail Programm HTML E-Mails anzeigen kann.
Ins das $mail->Body = ‘ ‘; kommt eure Nachricht die verschickt werden soll. In unserem Fall das Bestellformular.

Für den Anfang gibt es einige CSS – Formate damit die E-Mail ein etwas ordentliches Aussehen hat.
Das $_POST['name'] übernimmt den Wert den das Formular übergibt. Indem Fall also den Namen.
$mail->IsHTML(true); // set email format to HTML
$mail->Body = '
<style type="text/css">
p, li {
font-family:arial;
font-size:12px;
}
ul {
margin-left:-20px;
}
li {
list-style-type:none;
margin:3px 5px 3px 0px;
}
</style>
<p><strong>Firma</strong>: ' . $_POST['company'] . '</p>
<p><strong>Name</strong>: ' . $_POST['name'] . '</p>
<p><strong>Adresse</strong>: ' . $_POST['street'] . '</p>
<p><strong>Telefon</strong>: ' . $_POST['phone'] . '</p>
<p><strong>E-Mail</strong>: ' . $_POST['mail'] . '</p>';

Hier wird der alternative E-Mailinhalt generiert. Sprich wenn das E-Mail Programm keine HTML E-Mails darstellen kann.
$mail->AltBody = '
Firma: ' . $_POST['company'] . '
Name: ' . $_POST['name'] . '
Adresse: ' . $_POST['street'] . '
Telefon: ' . $_POST['phone'] . '
E-Mail: ' . $_POST['mail'];

Beim drücken des “Versende-Buttons” wird die E-Mail verschickt. Sollte dies nicht der Fall sein, wird eine Fehlermeldung ausgegeben. Falls die E-Mail abgeschickt wurde, kommt ein Dankeschön und ein Zurück-Button zum Vorschein.
if(!$mail->Send())
{
echo "Ihre Nachricht konnte leider nicht verschickt werden <p>";
echo "Fehlermeldung: " . $mail->ErrorInfo;
echo "<a href='javascript:history.back()'>zurück</a>";
exit;
}
echo 'Danke für ihr Bestellung! <a href="javascript:history.back()">zurück</a>';
?>

Das wars eigentlich schon. Nicht schwer oder? ;)