• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHPMailer einbinden in Kontaktformular

Xeno

Mitglied
Liebe Community

Ich möchte in ein Kontakformular den PHPMailer einbinden, da fast überall empfohlen wird, dass dies der Verwendung der Funktion mail () vorzuziehen ist. Nun gibt es ja dazu jede Menge Tutorials usw. Ich verstehe aber etwas nicht: Die Anleitungen (zumindest jene, die ich gefunden habe) gehen irgendwie immer davon aus, dass man den PHPMailer zum Versenden eigener Mails an irgendwen brauchen möchte. Ich möchte dagegen gerade umgekehrt, dass irgendwer (d. h. Besucher meiner Homepage) Mails (ausschliesslich) an mich versenden kann. Wahrscheinlich mache ich irgendeinen Denkfehler.

Jedenfalls habe ich die nötigen Dateien des PHPMailers besorgt und hochgeladen, aber aufgrund des eingangs geschilderten Problems weiss ich jetzt nicht, wie ich den in die Datei des Kontaktformulars integriere (genauer gesagt: ich weiss nicht, was ich genau alles definieren muss, das reine Integrieren des Skripts mit "require('......php')" ist schon klar).

Ich hofe ich habe mich halbwegs verständlich ausgedrückt. Nachfolgend mein Kontaktformular:

kontaktformular.php

PHP:
<?php

error_reporting(E_ALL ^ E_NOTICE);

ini_set("display_errors", true); 

?>

<!DOCTYPE html>

<html lang="de">

<?php

include ("head.php");

?>

<body>

<div id="wrapper">

<?php

include("header.php");

?>

<div id="inhalt">

<div id="inhalt2">

<div id="links">

<h1>

Kontaktformular

</h1>

<p>

Mit dem nachfolgenden Kontaktformular können Sie mir eine Nachricht hinterlassen. Technisch hat das Benutzen des Formulars denselben Effekt wie das Schreiben eines Mails an meine <a href="mailto:[email protected]">Mailadresse</a>. Der Vorteil für Sie ist, dass Sie zum  Abschicken des Formulars kein Mailprogramm benutzen müssen.

</p>



<?php

$header = "MIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n";



    if(isset($_POST['name']) && $_POST['name'] != "" && $_POST['mail'] != "" && $_POST['betreff'] != "" && $_POST['inhalt'] != "") 

        {

        $sent = mail('[email protected]', 'Kontaktformular: ' . $_POST['betreff'], 'Das Kontaktformular wurde ausgefüllt von: ' . $_POST['name'] . "\nMail des Absenders: " . $_POST['mail'] . "\nDie Nachricht lautet: " . $_POST['inhalt'], $header);

        }

        

    if($sent == 1) 

        {    

        echo "<h4>Ihre Email ist abgeschickt worden.</h4>";

        }

    

    else if($_POST['formular'] == 'set')

        {

        echo "<h4>Sie müssen alle Felder ausfüllen.</h4>";

        }



?>

<fieldset>

<legend>

Ihre Nachricht

</legend>

<form action="kontaktformular.php" method="post"><br>

<input type="hidden" value="set" name="formular">

Ihr Name:<br><input type="text" value="" placeholder="Name" name="name"><br><br>

Ihre Mailadresse:<br><input type="text" value="" placeholder="Mail" name="mail"><br><br>

Betreff:<br><input type="text" value="" placeholder="Betreff" name="betreff"><br><br>

Ihr Text:<br><textarea name="inhalt" placeholder="Text" rows="10">

</textarea><br><br>

<input type="submit" value="Senden">

<br>

<br>

</form>

<p id="guestbook">

<a href="index.php">Zurück zur Hauptseite</a>

</p>

</fieldset>

<br>

<br>

</div>

<?php

include("rechts.php");

?>

<div id="footer">

<p>

&copy; Michael Ritter 2012-2013. Alle Rechte vorbehalten. Näheres siehe <a href="http://www.michaelritter.ch/impressum.php">Impressum</a>.

</p>

</div>

</div>

</body>

</html>


Wie immer bereits im Voraus herzlichen Dank für jede Hilfe!

Lg Xeno

P.S.: Ist wie bei mir üblich alles selbst gebacken, deshalb seid mit gemeinen Kommentaren zur Code-Qualität etwas zurückhaltend SCNR.
 
Werbung:
Hallo,

wie so zeigst code mit der veralteten mail() funktion und nicht mit dem PHPMailer was schon hast?

So können wir nicht sehen wo was falsch machst.

Eine Mailer classe ist zum Mail versand da, egal an wem.
es ist da damit Mails immer richtig angezeigt werden, einfach anhänge verschickt werden können und die Mails nicht so schnell im SPAM Ordner landen.

Die Doku von PHPMailer ist eigentlich ganz gut, selbst ich habe die damals verstanden :O).

Cheffchen
 
Werbung:
Ok, dann werde ich mal versuchen! Ich dachte nur, eventuell hätte ich etwas Grundlegendes nicht begriffen. Ich melde mich, falls ich nicht weiterkomme.

Lg Xeno
 
Sogar ich hab's hingekriegt *juhee*. Der Fairness halber hier noch der Code-Ausschnitt soweit IMHO von Interesse:

PHP:
<?php

require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->AddAddress("[email protected]");
$mail->From = $_POST['mail'];
$mail->FromName = $_POST['name'];
$mail->Subject = "Vom Homepage-Kontaktformular:" . $_POST['betreff'];
$mail->Body = $_POST['inhalt'];
$mail->WordWrap = 50;

    if(!$mail->Send()) 
    {
    echo 'Das ist etwas schief gegangen. Ihre Nachricht wurde leider nicht abgeschickt.';
    echo 'Mailer error: ' . $mail->ErrorInfo;
    } 
    else 
    {
    echo "<h5>" . 'Ihre Nachricht wurde abgeschickt.' . "</h5>";
    }


?>


Lg Xeno
 
Zurück
Oben