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

Frage Kontaktformular mit Dateianhang

Status
Für weitere Antworten geschlossen.

RodMod

Neues Mitglied
Hallo,

ich habe ein "kleines" Problem, welches ich selber einfach nicht gelöst bekomme.

ich habe ein Kontaktformular erstellt, nun möchte ich da 2-3 PDF Dateien anhängen
die auf den Server liegen aber alle versuche sind gescheitert, habe es dann mit dem PHPmailer
versucht dort habe ich aber das Problem das ich die zwei Eingabefelder (wiederholte E-Mail) und eine Checkbox nicht prüfen kann.

Ist es möglich nur den PHPmailer so einzubinden das dieser nur für die Dateianhänge zuständig ist
oder gibt es eine einfache Möglichkeit PDF oder TXT Dateien anzuhängen?

wäre nett wenn mir jemand auf die Sprünge helfen kann.

PHP:
<?php
  
    if (isset($_POST["submit"])) {

      $name = $_POST['name'];
      $nname = $_POST['nname'];

      $email = $_POST['email'];
      $email2 = $_POST['email2'];

      $betreff = $_POST['betreff'];
      $nachricht = $_POST['nachricht'];

      $to = '[email protected]';

      $checkbox = $_POST['checkbox'];

      $human = intval($_POST['human']);

      $body =" Name: $name\n Nachname: $nname\n E-Mail: $email\n\n Betreff: $betreff\n Nachricht:\n $nachricht \n ---\n RodMod";

      $headers = "From: $email\n";
      $headers .= "Reply-To: $email\n";
      $headers .= "Content-type: text/plain; charset=UTF-8";

      //Prüft ob ein Name eingeben wurde.
      if (!$_POST['name']) {
        $errName = 'Name eingeben.';
      }

      //Prüft ob ein Nachname eingeben wurde.
      if (!$_POST['nname']) {
        $errNname = 'Name eingeben.';
      }

      //Prüft ob eine E-Mail eingeben wurde.
      if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errEmail = 'E-Mail prüfen.';
      }

      //Prüft ob eine E-Mail eingeben wurde.
      if (!$_POST['email2'] || !filter_var($_POST['email2'], FILTER_VALIDATE_EMAIL)) {
        $errEmail2 = 'E-Mail prüfen.';
      }

      if($email == $email2) {
        // Email korrekt.
      } else {
        // Email nicht korrekt.
        $errEmail2 = 'E-Mail prüfen.';
      }

      //Prüft ob eine Betreff eingeben wurde.
      if (!$_POST['betreff']) {
        $errBetreff = 'Betreff eingeben.';
      }

      //Prüft ob eine Nachricht eingeben wurde.
      if (!$_POST['nachricht']) {
        $errNachricht = 'Nachricht eingeben.';
      }
    
      //Einfacher Anti-bot scheck
      if ($human !== 9) {
        $errHuman = 'Falsche Antwort.';
      }
    
      //Prüft die Checkbox
      if (!($_POST['checkbox'])) {
        $errCheckbox = 'Checkbox Aktivieren.';
      }

      // Wenn kein Fehler Sende E-Mail.
      if (!$errName && !$errNname && !$errEmail && !$errEmail2 && !$errBetreff && !$errNachricht && !$errHuman && !$errCheckbox) {
        if (mail ($to, $betreff, $body, $headers)) {
          $result='<div class="button warning">Nachricht wurde verschickt.</div>'; echo "<meta http-equiv=\"Refresh\" content=\"3;url=index.html\">";
        } else {
          $result='<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';
        }
      }
    }
    ?>


EDIT: bin einen schritt weiter

das habe ich geändert für den txt anhang

PHP:
        <?php
       
        if (isset($_POST["submit"])) {

            $name = $_POST['name'];
            $nname = $_POST['nname'];

            $email = $_POST['email'];
            $email2 = $_POST['email2'];

            $betreff = $_POST['betreff'];
            $nachricht = $_POST['nachricht'];

            $to = '[email protected]';

            $checkbox = $_POST['checkbox'];

            $human = intval($_POST['human']);

            $body =" Name: $name\n Nachname: $nname\n E-Mail: $email\n\n Betreff: $betreff\n Nachricht:\n $nachricht \n ---\n Holger";

      $datei = "test.txt";
      $typ = "text/plain";
      $anhang = fread(fopen($datei, "r"), filesize($datei));
      $anhang = chunk_split(base64_encode($anhang));
      $boundary = md5(uniqid(time()));
   
      $headers = "MIME-Version: 1.0\n";
            $headers = "From: $email\n";
            $headers .= "Reply-To: $email\n";
            $headers .= "Content-Type: multipart/mixed; boundary=".$boundary."\n";
      $headers .= "--".$boundary."\n";
      $headers .= "Content-Type: text/plain\n";
      $headers .= "Content-Transfer-Encoding: 8bit\n";
      $headers .= "--".$boundary."\n";
      $headers .= "Content-Type: ".$typ."; name=\"".$datei."\"\n";
      $headers .= "Content-Transfer-Encoding: base64\n";
      $headers .= "Content-Disposition: attachment; filename=\"".$datei."\"\n";
      $headers .= $anhang."\n";   

            //Prüft ob ein Name eingeben wurde.
            if (!$_POST['name']) {
                $errName = 'Name eingeben.';
            }

            //Prüft ob ein Nachname eingeben wurde.
            if (!$_POST['nname']) {
                $errNname = 'Name eingeben.';
            }

            //Prüft ob eine E-Mail eingeben wurde.
            if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                $errEmail = 'E-Mail prüfen.';
            }

            //Prüft ob eine E-Mail eingeben wurde.
            if (!$_POST['email2'] || !filter_var($_POST['email2'], FILTER_VALIDATE_EMAIL)) {
                $errEmail2 = 'E-Mail prüfen.';
            }

            if($email == $email2) {
                // Email korrekt.
            } else {
                // Email nicht korrekt.
                $errEmail2 = 'E-Mail prüfen.';
            }

            //Prüft ob eine Betreff eingeben wurde.
            if (!$_POST['betreff']) {
                $errBetreff = 'Betreff eingeben.';
            }

            //Prüft ob eine Nachricht eingeben wurde.
            if (!$_POST['nachricht']) {
                $errNachricht = 'Nachricht eingeben.';
            }
           
            //Einfacher Anti-bot scheck
            if ($human !== 9) {
                $errHuman = 'Falsche Antwort.';
            }
           
            //Prüft die Checkbox
            if (!($_POST['checkbox'])) {
                $errCheckbox = 'Checkbox Aktivieren.';
            }

            // Wenn kein Fehler Sende E-Mail.
            if (!$errName && !$errNname && !$errEmail && !$errEmail2 && !$errBetreff && !$errNachricht && !$errHuman && !$errCheckbox) {
                if (mail ($to, $betreff, $body, $headers)) {
                    $result='<div class="button warning">Nachricht wurde verschickt.</div>'; echo "<meta http-equiv=\"Refresh\" content=\"3;url=index.html\">";
                } else {
                    $result='<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';
                }
            }
        }
        ?>


doch leider kommt die email so an.

Code:
Content-Type: text/plain; name="test.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test.txt"
YW5oYW5nIMO8w6TDtg==

Name: Max
Nachname: Müller
E-Mail: [email protected]

Betreff: test öäü
Nachricht:
123
---
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Ich zitiere mal die Standardantwort aus einem anderen Forum zu diesem Thema
Mit der PHP-Funktion mail() kann man E-Mails versenden. Aber damit hat der Entwickler oft viele Sorgen. Für den korrekten E-Mail Versand sind verschiedene Mail-Header notwendig. Ohne die richtigen Header bekommen viele Mail-Clients Probleme bei der Anzeige oder empfangen diese erst gar nicht. Allerdings ist es aufgrund der Komplexität sehr aufwändig, alle sich damit befassenden RFC-Dokumente selbst durchzuarbeiten und anzuwenden. Stattdessen sollte man Mailerklassen verwenden, die diese Header korrekt einbinden.

Mailerklassen
 
das hilf mir aber auch nicht weiter, phpmailer habe ich auch aber da klappt das dann mit den checkboxen nicht, bekomme das nicht richtig eingebunden.
 
Werbung:
bekomme das nicht richtig eingebunden.
Dann machst du was falsch. Ich benutze den phpMailer schon seit Ewigkeiten, daran wird es bei dir garantiert nicht liegen. Außerdem, was hat eine Checkbox mit dem phpMailer zu tun?

Und nochwas, drehe mal das Error-Reporting hoch, PHP wird dir dann einiges erzählen. Also an den Anfang:
PHP:
error_reporting(E_ALL);
ini_set('display_errors', true);
 
is klar das ich was falsch mache, sonst würde es ja funktionieren ;)

ich bekomme halt den phpmailer nicht so eingebunden das die errormeldung funktionieren,
und serverseitige fehlermeldungen bringen mir das nichts da diese dann z.b. auf einen ipad nicht funktionieren.

ok, werde das gleich mal testen.

habe jetzt versucht die "fehler" zu beheben, nur komme ich mit der textarea nicht weiter
es wird keine Fehlermeldung ausgegeben wenn das feld leer ist.

was muss ich ändern damit die Fehlermeldung angezeigt wird?

PHP:
        <?php
       
    error_reporting(E_ALL);
    ini_set('display_errors', true);

    $result =""; 
     $errName ="";
    $errNname ="";
    $errEmail ="";
    $errEmail2="";
    $errBetreff ="";
    $errNachricht ="";
    $errHuman ="";
    $errHuman2 ="";
    $errCheckbox ="";
   
    $FORM['name'] = "";
    if (isset($_GET['name'])) $FORM['name'] = htmlspecialchars($_GET['name']);

    $FORM['nname'] = "";
    if (isset($_GET['nname'])) $FORM['nname'] = htmlspecialchars($_GET['nname']);

    $FORM['email'] = "";
    if (isset($_GET['email'])) $FORM['email'] = htmlspecialchars($_GET['email']);

    $FORM['email2'] = "";
    if (isset($_GET['email2'])) $FORM['email2'] = htmlspecialchars($_GET['email2']);

    $FORM['betreff'] = "";
    if (isset($_GET['betreff'])) $FORM['betreff'] = htmlspecialchars($_GET['betreff']);

    $FORM['nachricht'] = "";
    if (isset($_GET['nachricht'])) $FORM['nachricht'] = htmlspecialchars($_GET['nachricht']);
   
    $FORM['human'] = "";
    if (isset($_GET['human'])) $FORM['human'] = htmlspecialchars($_GET['human']);

    $FORM['human2'] = "";
    if (isset($_GET['human2'])) $FORM['human2'] = htmlspecialchars($_GET['human2']);   
   
        if (isset($_POST["submit"])) {

            $name = $_POST['name'];
            $nname = $_POST['nname'];

            $email = $_POST['email'];
            $email2 = $_POST['email2'];

            $betreff = $_POST['betreff'];
            $nachricht = $_POST['nachricht'];

            $to = '[email protected]';

            $checkbox = $_POST['checkbox'];

            $human = intval($_POST['human']);

            $body =" Name: $name\n Nachname: $nname\n E-Mail: $email\n\n Betreff: $betreff\n Nachricht:\n $nachricht \n ---\n Holger ";
   
            $headers = "From: $email\n";
            $headers .= "Reply-To: $email\n";
            $headers .= "Content-type: text/plain; charset=UTF-8";   

            //Prüft ob ein Name eingeben wurde.
            if (!$_POST['name']) {
                $errName = 'Name eingeben.';
            }

            //Prüft ob ein Nachname eingeben wurde.
            if (!$_POST['nname']) {
                $errNname = 'Name eingeben.';
            }

            //Prüft ob eine E-Mail eingeben wurde.
            if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                $errEmail = 'E-Mail prüfen.';
            }

            //Prüft ob eine E-Mail eingeben wurde.
            if (!$_POST['email2'] || !filter_var($_POST['email2'], FILTER_VALIDATE_EMAIL)) {
                $errEmail2 = 'E-Mail prüfen.';
            }

            if($email == $email2) {
                // Email korrekt.
            } else {
                // Email nicht korrekt.
                $errEmail2 = 'E-Mail prüfen.';
            }

            //Prüft ob eine Betreff eingeben wurde.
            if (!$_POST['betreff']) {
                $errBetreff = 'Betreff eingeben.';
            }

            //Prüft ob eine Nachricht eingeben wurde.
            if (!$_POST['nachricht']) {
                $errNachricht = 'Nachricht eingeben.';
            }
           
            //Einfacher Anti-bot scheck
            if ($human !== 9) {
                $errHuman = 'Falsche Antwort.';
            }
           
            //Prüft die Checkbox
            if (!($_POST['checkbox'])) {
                $errCheckbox = 'Checkbox Aktivieren.';
            }

            // Wenn kein Fehler Sende E-Mail.
            if (!$errName && !$errNname && !$errEmail && !$errEmail2 && !$errBetreff && !$errNachricht && !$errHuman && !$errCheckbox) {
                if (mail ($to, $betreff, $body, $headers)) {
                    $result='<div class="button warning">Nachricht wurde verschickt.</div>'; echo "<meta http-equiv=\"Refresh\" content=\"3;url=index.html\">";
                } else {
                    $result='<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';
                }
            }
        }
        ?>

PHP:
<div class="cell"> <!-- Betreff -->
    <label>Betreff</label>
    <?php echo "<p class='text-fail' style='margin-bottom: 0px;'>$errBetreff</p>";?>
    <div class="input-control text full-size">
        <input type="text" class="form-control input-sm" id="betreff" name="betreff" value="<?php echo $FORM['betreff'];?>">
    </div>
</div> <!-- /Betreff -->

<div class="cell"> <!-- Nachricht -->
    <label>Nachricht</label>
    <div class="input-control textarea full-size">
        <textarea class="form-control input-sm" rows="3" id="nachricht" name="nachricht" style="resize:none">
            <?php echo htmlspecialchars($FORM['nachricht']); ?>
        </textarea>
        <?php echo "<p class='text-fail' style='margin-bottom: 0px;'>$errNachricht</p>";?>
    </div>
</div> <!-- /Nachricht -->
 
Zuletzt bearbeitet von einem Moderator:
Was für ein Durcheinander?!?!

Was denn nun, Get oder Post?
 
Werbung:
man beantwortet eine frage nicht mit einer Gegenfrage ;)

wohl eher post, mal schauen wie ich das mit post hinbekomme.
 
man beantwortet eine frage nicht mit einer Gegenfrage
Wenn Fragen weitere Fragen hervorrufen, dann schon.

Aber dann mal ohne Frage: ich verstehe nicht, wieso da alles in $FORMS umgeschireben wird. Für mich ist das relativ viel Chaos in einem kurzen Standardscript.
 
ich verstehe das auch nicht, hatte halt notice "fehler" die wollte ich wegbekommen, habe den fehler
dann gegoogelt und bin dann auf stackoverflow gelandet wo das jemand gepostet hat, ich habe das ausprobiert und die der "fehler" war weg. werde das erst mal alles wieder raus nehmen.
 
Werbung:
Hallo,

ich komme einfach nicht weiter, habe es zwar hinbekommen, Dateianhänge (mit phpmailer alles neu gemacht) zu verschicken aber
da habe ich es nicht geschafft die E-Mail Felder zu prüfen.

bei dem Code unten klappt es zwar aber dort werden die Dateianhänge
nicht mit verschickt.

was muss ich ändern damit das funktioniert?

PHP:
<?php
/*        error_reporting(E_ALL);
        ini_set('display_errors', true);
*/
        $result ="";
        $errName ="";
        $errNname ="";
        $errEmail ="";
        $errEmail2="";
        $errBetreff ="";
        $errNachricht ="";
        $errHuman ="";
        $errHuman2 ="";
        $errCheckbox ="";
              
        if (isset($_POST["submit"])) {
  
            $name = $_POST['name'];
            $nname = $_POST['nname'];

            $email = $_POST['email'];
            $email2 = $_POST['email2'];

            $betreff = $_POST['betreff'];
            $nachricht = $_POST['nachricht'];

            $to = '[email protected]';

            $checkbox = $_POST['checkbox'];

            $human = intval($_POST['human']);

            $body =" Name: $name\n Nachname: $nname\n E-Mail: $email\n\n Betreff: $betreff\n Nachricht:\n $nachricht \n ---\n Holger";

            $headers = "From: $email\n";
            $headers .= "Reply-To: $email\n";
            $headers .= "Content-type: text/plain; charset=UTF-8";
  
        require ('phpmailer/PHPMailerAutoload.php');

        $mail = new PHPMailer(); // defaults to using php "mail()"
        $mail->Encoding = '8bit';
        $mail->CharSet = 'utf-8';
        $mail->MsgHTML($body);
      $mail->AddAttachment('images/phpmailer.png');      // attachment
        $mail->AddAttachment('images/phpmailer_mini.png'); // attachment

            //Prüft ob ein Name eingeben wurde.
            if (!$_POST['name']) {
                $errName = 'Name eingeben.';
            }

            //Prüft ob ein Nachname eingeben wurde.
            if (!$_POST['nname']) {
                $errNname = 'Name eingeben.';
            }

            //Prüft ob eine E-Mail eingeben wurde.
            if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                $errEmail = 'E-Mail prüfen.';
            }

            //Prüft ob eine E-Mail eingeben wurde.
            if (!$_POST['email2'] || !filter_var($_POST['email2'], FILTER_VALIDATE_EMAIL)) {
                $errEmail2 = 'E-Mail prüfen.';
            }

            if($email == $email2) {
                // Email korrekt.
            } else {
                // Email nicht korrekt.
                $errEmail2 = 'E-Mail prüfen.';
            }

            //Prüft ob eine Betreff eingeben wurde.
            if (!$_POST['betreff']) {
                $errBetreff = 'Betreff eingeben.';
            }

            //Prüft ob eine Nachricht eingeben wurde.
            if (!$_POST['nachricht']) {
                $errNachricht = 'Nachricht eingeben.';
            }

            //Einfacher Anti-bot scheck
            if ($human !== 9) {
                $errHuman = 'Falsche Antwort.';
            }

            //Prüft die Checkbox
            if (!($_POST['checkbox'])) {
                $errCheckbox = 'Checkbox Aktivieren.';
            }

            // Wenn kein Fehler Sende E-Mail.
            if (!$errName && !$errNname && !$errEmail && !$errEmail2 && !$errBetreff && !$errNachricht && !$errHuman && !$errCheckbox) {
                if (mail ($to, $betreff, $body, $headers)) {
                    $result='<div class="button warning">Nachricht wurde verschickt.</div>'; echo "<meta http-equiv=\"Refresh\" content=\"3;url=index.html\">";
                } else {
                    $result='<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';
                }
            }
        }
        ?>
MfG Rodmod
 
Es würde Sinn machen, wenn du den phpMailer auch zum Senden nutzt und nicht doch die Mail-Funktion von PHP :(:confused:
 
wenn du mir sagt wie ich das ändern kann, wenn ich if(!$mail->Send()) benutze kommt keine email an.
 
Werbung:
Dann frag' doch mal den Fehler ab!!! :mad:

PHP:
if(!$mail->Send()) {
   echo "Mailer Error: " . $mail->ErrorInfo;
}
else {
   echo "Message sent!";
}
 
das bringt mir alles nicht wenn ich wüsste wie was geht würde ich hier nicht fragen, sitze da schon die ganze woche dran.
 
Zeige die Version, in der du auch wirklich den phpMailer nutzt.
 
Werbung:
PHP:
<?php

        if(isset($_POST['submit'])) {

            $message=
            '
            Name: '.$_POST['name'].'<br />
            Nachname: '.$_POST['nname'].'<br />
            Email:  '.$_POST['email'].'<br /><br />
            Betreff:  '.$_POST['betreff'].'<br />
            Nachricht:  '.$_POST['nachricht'].'
            ';

            require "phpmailer/class.phpmailer.php"; //include phpmailer class
            include "phpmailer/class.smtp.php"; // optional, gets called from within class.phpmailer.php if not already loaded
            require 'phpmailer/language/phpmailer.lang-de.php'; // deutsche Fehlermeldungen

            // Instantiate Class
            $mail = new PHPMailer();

            // Set up SMTP
            $mail->IsSMTP();                // Sets up a SMTP connection
            $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization
            $mail->SMTPSecure = "ssl";      // Connect using a TLS connection
            $mail->Host = "smtprelaypool.ispgateway.de";  // SMTP server address
            $mail->Port = 465;  //Gmail SMTP port
            $mail->Encoding = '8bit';

            // Authentication
            $mail->Username   = "[email protected]"; // Your full  address
            $mail->Password   = "xxx"; // Your  password

            // Compose
            $mail->CharSet = 'utf-8';
            $mail->SetFrom($_POST['email'], $_POST['name'] . " " . $_POST['nname']);
            $mail->AddReplyTo($_POST['email'], $_POST['name'] . " " . $_POST['nname']);
            $mail->Subject = ($_POST['betreff']);
            $mail->MsgHTML($message);
            $mail->AddAttachment('images/phpmailer.png');      // attachment
            $mail->AddAttachment('images/phpmailer_mini.png'); // attachment

            // Send To
            $mail->AddAddress("[email protected]", "xxx.de"); // Where to send it - Recipient
            $result = $mail->Send();    // Send!

            $message = $result ? '<div class="button warning">Nachricht wurde verschickt.</div>' : '<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';

            unset($mail);

        }
        ?>
 
:( Kopfschüttel :(

Und jetzt guckt dir Posting #14 nochmal an! Ich frage mich, warum man dir antworten soll, wenn du nur die Hälfte davon berücksichtigst.
 
und dann? der PHPmailer Fuktioniert doch, ich bekomme es nur nicht hin das die zwei e-mail felder vor dem senden geprüft werden.

und wenn ich das aus #14 einfüge bekomme ich eine fehler meldung.

"Mailer Error: You must provide at least one recipient email address."

was keinen Sinn macht die E-Mail wird ja verschickt und kommt auch an.
 
Werbung:
habe ein wenig weiter getestet, nur wird das formular nach dem anklicken des submit buttons verschickt, obwohl die email adressen nicht übereinstimmen und auch die fehlermeldung angezeigt wird.

PHP:
<?php

        if(isset($_POST['submit'])) {

            $email = $_POST['email'];
            $email2 = $_POST['email2'];
           
            if($email == $email2) {
                // Email korrekt.
            } else {
                // Email nicht korrekt.
                $errEmail2 = 'E-Mail prüfen.';
            }

            $message=
            '
            Name: '.$_POST['name'].'<br />
            Nachname: '.$_POST['nname'].'<br />
            Email:  '.$_POST['email'].'<br /><br />
            Betreff:  '.$_POST['betreff'].'<br />
            Nachricht:  '.$_POST['nachricht'].'
            ';

            require "phpmailer/class.phpmailer.php"; //include phpmailer class
            include "phpmailer/class.smtp.php"; // optional, gets called from within class.phpmailer.php if not already loaded
            require 'phpmailer/language/phpmailer.lang-de.php'; // deutsche Fehlermeldungen

            // Instantiate Class
            $mail = new PHPMailer();

            // Set up SMTP
            $mail->IsSMTP();                // Sets up a SMTP connection
            $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization
            $mail->SMTPSecure = "ssl";      // Connect using a TLS connection
            $mail->Host = "smtprelaypool.ispgateway.de";  // SMTP server address
            $mail->Port = 465;  //Gmail SMTP port
            $mail->Encoding = '8bit';

            // Authentication
            $mail->Username   = "[email protected]"; // Your full  address
            $mail->Password   = "xxx"; // Your  password

            // Compose
            $mail->CharSet = 'utf-8';
            $mail->SetFrom($_POST['email'], $_POST['name'] . " " . $_POST['nname']);
            $mail->AddReplyTo($_POST['email'], $_POST['name'] . " " . $_POST['nname']);
            $mail->Subject = ($_POST['betreff']);
            $mail->MsgHTML($message);
            $mail->AddAttachment('images/phpmailer.png');      // attachment
            $mail->AddAttachment('images/phpmailer_mini.png'); // attachment

            // Send To
            $mail->AddAddress("[email protected]", "xxx.de"); // Where to send it - Recipient
            $result = $mail->Send();    // Send!

            $message = $result ? '<div class="button warning">Nachricht wurde verschickt.</div>' : '<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';

            unset($mail);

        }
        ?>
 
Habe nicht den gesamten Thread gelesen, aber es liegt doch auf der Hand das die Mail dennoch versendet wird! Du musst den gesamten Code der für das versenden der Mail zuständig ist innerhalb der Abfrage ausführen sonnst ist die natürlich nutzlos.

PHP:
<?php

if (isset($_POST['submit'])) {

    $email = $_POST['email'];
    $email2 = $_POST['email2'];

    if ($email == $email2) {
        // Email korrekt.
      
        $message = <<<EOT
Name: {$_POST['name']}
Nachname: {$_POST['nname']}
Email:  {$_POST['email']}

Betreff:  {$_POST['betreff']}
Nachricht:  {$_POST['nachricht']}
EOT;

        require "phpmailer/class.phpmailer.php"; //include phpmailer class
        include "phpmailer/class.smtp.php"; // optional, gets called from within class.phpmailer.php if not already loaded
        require 'phpmailer/language/phpmailer.lang-de.php'; // deutsche Fehlermeldungen

        // Instantiate Class
        $mail = new PHPMailer();

        // Set up SMTP
        $mail->IsSMTP();                // Sets up a SMTP connection
        $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization
        $mail->SMTPSecure = "ssl";      // Connect using a TLS connection
        $mail->Host = "smtprelaypool.ispgateway.de";  // SMTP server address
        $mail->Port = 465;  //Gmail SMTP port
        $mail->Encoding = '8bit';

        // Authentication
        $mail->Username = "[email protected]"; // Your full  address
        $mail->Password = "xxx"; // Your  password

        // Compose
        $mail->CharSet = 'utf-8';
        $mail->SetFrom($_POST['email'], $_POST['name'] . " " . $_POST['nname']);
        $mail->AddReplyTo($_POST['email'], $_POST['name'] . " " . $_POST['nname']);
        $mail->Subject = ($_POST['betreff']);
        $mail->MsgHTML($message);
        $mail->AddAttachment('images/phpmailer.png');      // attachment
        $mail->AddAttachment('images/phpmailer_mini.png'); // attachment

        // Send To
        $mail->AddAddress("[email protected]", "xxx.de"); // Where to send it - Recipient
        $result = $mail->Send();    // Send!

        $message = $result ? '<div class="button warning">Nachricht wurde verschickt.</div>' : '<div class="button alert">Nachricht wurde nicht verschickt, versuchen Sie es später noch einmal.</div>';

        unset($mail);    } else {
        // Email nicht korrekt.
        $errEmail2 = 'E-Mail prüfen.';
    }
}

Die Nachricht habe ich mit Heredoc formatiert das ist bei solchen Sachen zu empfehlen.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben