Anzeige
Tutorialbeschreibung

Email versenden per PHP

Email versenden per PHP

Hier zeige ich euch wie ihr ein PHP Mail Script erstellt. Dazu werde ich 2 Dateien erstellen eine contact.php und eine send.php.

Bedenkt dass ihr für dieses Script einen Webspace braucht der PHP unterstützt.


Hier zeige ich euch wie ihr ein PHP Mail Script erstellt. Dazu werde ich 2 Dateien erstellen eine contact.php und eine send.php.

Bedenkt dass ihr für dieses Script einen Webspace braucht der PHP unterstützt.

Hier der Code für contact.php er ist eigentlich reines HTML daher brauche ich das nicht weiter zu erläutern.

<form name="form1" method="post" action="send.php">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="20%">Name:</td>
<td><input name="name" type="text" id="name"></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>Betreff:</td>
<td><input name="betreff" type="text" id="name3"></td>
</tr>
<tr>
<td valign="top">Text:</td>
<td><textarea name="text" cols="50" rows="7" id="name4"></textarea></td>
</tr>
<tr>
<td>Option:</td>
<td><input type="submit" name="Submit" value="Absenden">
<input name="reset" type="reset" id="reset" value="L&ouml;schen"></td>
</tr>
</table>
</form>

Und nun erstellen wir die send.php Datei, hier habe ich jeweils im // eingegeben was ihr verändern müsst.

<?
// Wir legen eine Variable mit deiner E-Mail
$ihremail "deine@mail.de";
// Lege nun eine leere Variable für Fehler an (wird später benötigt)
$error "";
// Inhalt aus den Formularen übertragen "Name"
$name $_POST['name'];
// Inhalt aus den Formularen übertragen "Email"
$email $_POST['email'];
// Inhalt aus den Formularen übertragen "Betreff"
$betreff $_POST['betreff'];
// Inhalt aus den Formularen übertragen "Nachricht"
$text $_POST['text']; // Text
$Submit $_POST['Submit']; // Sende Button
// Wir bauen eine Funktion die soll die Absender E-Mail überprüfen, ob die gültig ist
// das machen wir mit eregi() wir prüfen nicht nur ob "@" und "." vorhanden ist sondern auch
// 2 bustaben vor "@" und nach dem "@" da sind.
function mailcheck($mail) {
  
$mail eregi("^[a-z0-9]+([-_.]?[a-z0-9])
+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}"
$mail); // Hier läuft das ab
  
return $mail// wir geben die E-Mail zurück
}
    
// Jetzt prüfen wir ob die Felder ausgefüllt wurden mit if(empty)
    //wenn das feld "Name" nicht ausgefüllt wurde geben wir der leeren $error Inhalt
    // Also die Ausgabe "Sie haben keinen Namen angegeben."
    
if(empty($name)) $error .= "<li>Sie haben keinen Namen angegeben.</li>";
    
// das gleiche mit "Email"
    
if(empty($email)) $error .= "<li>Sie haben keine E-Mail angegeben.</li>";
    
// hier setzen wir unsere oben gebaute Funktion ein wenn E-Mail nicht stimmt dann fehlerausgabe
    
if(!mailcheck($email)) $error .= "<li>Ihre E-Mail ist ungültig</li>";
    
// für das Feld "Betreff"
    
if(empty($betreff)) $error .= "<li>Es wurde kein Betreff ausgewählt.</li>";
    
// für Nachricht
    
if(empty($text)) $error .= "<li>Sie haben kein Text angegeben.</li>";
    
// if(empty($error)) d.h wenn $error leer ist also alles normal ausgefüllt wurde und der Button "Absenden" angeklickt wurde
    // Dann springt das runter und wir holen uns die übertragene Daten
        
if(empty($error) && $Submit == "Absenden" ) {
    
// wir machen das ganze in eine Variable "$nachricht"
    
$nachricht "Email von ".$name."nn".
                
"Name: ".$name."n".
                
"Email: ".$email."nn".
                
"Betreff: ".$betreff."n".
                
"Nachricht: ".$text;
    
$subject "$betreff";
    
$nachricht1 $email "nn" $nachricht;
    
// hier setzen wir unsere mail() funktion ein das muss genau so ausehen
    // mail($anwem,$subject,$den den ganzen inhalt, unbedingt "FROM:" also von wem)
    
mail($ihremail,$subject,$nachricht1,"FROM: $email");
    }
    
// hier fragen wir wieder ein Error ein:
if(empty($error)) {
    
// wir geben dann hier ein dass alles ok ist
    
echo "<b>Nachricht wurde erfolgtreich verschickt</b><br>
                  <ul>
                  <li>Name: $name</li>
                  <li>Email: $email</li>
                  <li>Betreff: $betreff</li>
                  <li>Nachricht: $text</li>
                  </ul>"
;
    
// Wenn es nicht stimmt
    
} else {
    echo 
"Folgender Fehler ist aufgetreten<br><p>Ihre Nachricht konnte nicht gesendet werden:<ul>$error</ul></p>";
}
?> 

Das wars, beide Dateien hochladen und mit eurer Seite verknüpfen. Schon habt ihr ein selbsterstelltes Email-Formular. Ihr könnt auch die Hintergrund Farbe ändern dies macht ihr entweder mit Dreamweaver oder mit folgendem Code bei contact.php:

<style type="text/css">
<!--
body,td,th {
 color: #FFFFFF;
}
body {
 background-color: #838591;
}
a:link {
 color: #FFFFFF;
}
a:visited {
 color: #CCCCCC;
}
a:hover {
 color: #CCCCCC;
}
.Stil5 {font-size: 12px; font-weight: bold; font-family: Celtic; }
-->
</style><form name="form1" method="post" action="send.php">

Überall wo #FFFFFF steht oder eine Zahl müsst ihr eure Farbe eingeben. 

Das könnt ihr natürlich auch mit eurer send.php machen allerdings reicht es wenn der dann so aussieht:

<style type="text/css">
<!--
body,td,th {
 color: #FFFFFF;
}
body {
 background-color: #838591;
}
-->
</style> 

Nach </style> kommt dann euer PHP Code der mit  <? anfängt. 

Ich hoffe ich konnte euch helfen ein eigenes Email Formular zu erstellen, 

Dieser Script kann auch für eine Registrierung verwendet werden, einfach mehr Formulare eingeben und nicht vergessen bei Passwort type="password" einzugeben und nicht type="text" . Verändern müsst ihr aber unbedingt dann beide Dateien und nicht nur eine, sonst bekommt ihr am Ende nicht alle Felder per E-Mail zugeschickt wenn ihr z.B. send.php nicht verändert.

Bsp:
<td><span class="Stil5">Passwort:</span></td>
<td><input name="Passwort" type="password" id="Passwort"></td>


DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von Queenskitty_One
  • 25.06.2013 - 18:35

Hallo Lexia,

ich habe dein Tutorial "Email versenden per PHP" genutzt. An sich ist es alles super, nur eines nicht:

Wenn ich eine Testmail schreibe, wird diese erfolgreich abgesendet und kommt auch an. ABER die Email schaut dann wie folgt aus:

test@tester.de // Wieso wird das hier nochmals angezeigt, wenn es unten bereits steht?

Email von Miss Test
IP: XXX.XXX.XXX.XXX // Zahen werden angezeigt

Email: test@tester.de
Betreff: Anfrage


Nachricht: À ö ÃŒ ß // ich habe ä ö ü ß reingeschrieben, wieso sieht es so aus?


Es wäre nett wenn du mir diese Fragen beantworten könntest und mir helfen könntest, wie ich es richten kann?

Liebe Grüße
Queeny

Portrait von Queenskitty_One
Portrait von Das_Auge
  • 25.10.2010 - 00:44

Also Tut ist ganz gut, zwecks dem Mailfehler gibt es ca. auf Zeile 30 ein kleinen Zeichenfehler

....if(!mailcheck($email)) $error .= "Ihre E-Mail ist ungültig";....(Das ! muss entfernt werden, danach klappt es auch mit dem versenden). Nur die Mail kam bei mir noch nicht an, aber das werde ich auch noch beheben können ;-)...Vielen dank für das Tut.

Portrait von WeButch
  • 20.07.2010 - 13:30

Funktioniert bei mir leider nicht.Erhalte immer - auch bei korrekter eMail:

Folgender Fehler ist aufgetreten

Ihre Nachricht konnte nicht gesendet werden:

Ihre E-Mail ist ungültig

Habe den Code kopiert.

Portrait von marcmaroc
  • 24.02.2010 - 13:59

Gut! Ist wirklich einfach und simpel erklärt.
Was mir immer fehlt ist die Gestaltung der Mails, das es etwas ... professioneller aussieht.

Portrait von schmaiki
  • 02.02.2010 - 20:15

sehr gut erklärt und leicht verständlich! aber das wichtigste fehlt das escaping. würde ich noch einbauen. gruss schmaiki

Portrait von Silentbike
  • 22.01.2010 - 21:52

Danke ist mir hilfreich

Portrait von icehawk2
  • 17.01.2010 - 17:10

Vll. hätte man das Tutorials noch mit Bildern besser erläutern können, aber sonsten dickes Dankeschön. . .

Portrait von Silentbike
  • 17.01.2010 - 13:12

Gut nachvollziehbar! Danke

Portrait von showav
  • 29.12.2009 - 19:26

sehr gut erklärt und leicht verständlich!!

hätte nur 1 frage wie sieht es aus ich habe in meinem Formular 2 dropdown menus zum genauer auswählen!

müssen diese speziell beschrieben werden oder reicht wenn ich dann einfach 2x
$email = $_POST['.....']
dran hänge??

Portrait von UltimateX
  • 08.11.2009 - 12:36

leicht verständlich und hilfreich Thx

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 18.09.2009 - 19:25

Danke für das Tut. Alles nachvollziehbar.

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 22.06.2009 - 09:04

bis auf diesen email check hab ich alles verstanden danke

Portrait von subOptimal
  • 20.06.2009 - 09:54

Bei mir geht das Script sehr hut auch mit guter Erklärung aber wenn ich eine ungültige Email eingebe wie "äö" wird sie trotzdem abgeschickt! Kann mir wer helfen? Bitte um schnelle Rückmeldung

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 18.06.2009 - 11:54

Sehr Gut erklärt dankeschön

Portrait von erinnerungswerk
Portrait von bjoernsn
  • 11.04.2009 - 23:58

Hallo, ich habe die Seiten genauso erstellt wir beschrieben. Ich bekomme aber nach senden einer email die Fehlermeldung "Ihre E-Mail ist ungültig"
Kann mir jemand einen rettenden Tip geben? gruß, Björn

Portrait von bjoernsn
  • 12.04.2009 - 00:21

den fehler habe ich wegbekommen, aber die verschickte mail kommt nicht an!?!?!?
Bitte dringend um Hilfe

Portrait von ana90
  • 01.12.2008 - 11:05

sehr gut, sehr gut, sehr gut, sehr gut, sehr gut,

Portrait von Khan66
  • 07.11.2008 - 14:06

danke dir hat mir richtig viel geholfen und mal auf die kommentare der anderen geschaut und nanu den fehler "Ihre E-Mail ist ungültig" hatte ich auch.
JETZT FUNKTIONIERT ALLES

x
×
×