You are not logged in.

Friday, February 18th 2011, 7:38pm

Tags

email, Mail, phpmail, phpmailer, webmail

Abstract

Dieses Tutorial zeigt euch wie einfach ihr in PHP Emails verschicken könnt.

Article

1. Motivation


Dieses Tutorial erläutert die Nutzung der PHP Klasse: phpmailer. Diese ist sehr verbreitet. Praktisch ist es auch möglich sich einen webmailer unter zu Hilfe nahme der PHP Funktion mail selbst zu programmieren.
Diese hat aber auch viele Nachteile. Es ist sehr schwer fortgeschrittene Funktionen wie Dateianhänge zu implementieren.
Es ist außerdem für einen Anfänger sehr undurchsichtig, wie die Funktion mail missbraucht werden kann. So können z.B. die Empfängerlisten manipuliert werden, obwohl dies der Code gar nicht vorsieht.

2. Vorgehen


Mein Beispielcode weiter unten enthält bereits eine Version, ihr solltet aber versuchen immer die aktuellste Version des phpmailers von sourceforge herunterladen. Den Download findet ihr hier: http://sourceforge.net/projects/phpmaile…PMailer%20v5.1/

3. Beispiel


Das einfachste Beispiel zeigt ein HTML Formular:

HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form method="get">
	<input type="hidden" name="submit" value="1" />
	<table>
		<tr>
			<td>Absender Name</td>
			<td><input type="text" name="name" /></td>
		</tr>
		<tr>
			<td>Absender E-Mail</td>
			<td><input type="text" name="mail" /></td>
		</tr>
		<tr>
			<td>Empfänger E-Mail</td>
			<td><input type="text" name="recipient" /></td>
		</tr>
		<tr>
			<td colspan="2"><textarea name="inhalt" cols="50" rows="10"></textarea></td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td><input type="submit" name="submit" value="Wunsch abschicken" /></td>
		</tr>
 
	</table>
</form>


Das Verschicken funktioniert wie folgt

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
if(isset($_POST['submit'])) {
 
	require_once("class.phpmailer.php");
	$mail = new PHPMailer();
 
	$mail->AddAddress($_POST['recipient']);
	$mail->From 	= $_POST['mail'];
	$mail->FromName = $_POST['name'];
	$mail->Subject	= $_POST['subject'];
	$mail->MsgHTML($_POST['inhalt']);
 
	if(!$mail->Send())
	{
	   echo "Warnung: Fehler beim Senden der Nachricht";
	   exit;
	}
 
	echo "Nachricht wurde erfolgreich verschickt";
	exit;
}
?>


4. Ressourcen


Ihr findet den hier vorgestellten Download unter http://demo.easy-coding.de/php/webmailer/download.zip
Weitere Beispiele zum phpmailer findet ihr unter http://phpmailer.worxware.com/index.php?pg=examples

5. Erweiterungen


5.1. Blindempfänger hinzufügen


Ihr könnt dem Mailer beliebig viele Blindempfänger hinzufügen. Das könnt ihr z.B. zum Versenden von Newslettern nutzen.

PHP Quellcode

1
2
$mail->AddBCC("peter@ratlos.de", "Peter");
$mail->AddBCC("susi@sinnlos.de");


5.2. Anhang hinzufügen


Ihr könnt der E-Mail beliebig viele Anhänge hinzufügen.

PHP Quellcode

1
$mail->AddAttachment("11-10-00.zip", "new_name.zip");  // optional name

Lexikon 4.1.5, developed by www.viecode.com