Ankündigung

Einklappen
Keine Ankündigung bisher.

PHPMailer

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHPMailer

    Hallo,
    ich habe für ein Kontaktformular PHPMailer installiert und bin gerade dabei es für meine Zwecke anzupassen. Als PHP-Anfänger ne echt harte Nuss! Ich stocke gerade beim übergeben der E-Mail Adresse des Absenders.

    Ursprünglich:
    PHP-Code:
    $mail->From "test@test.info"
    Mein Ansatz:
    PHP-Code:
    $mail_absender=$email
    Folgende Fehlermeldung wird ausgegeben:
    SMTP server error: 5.5.2 : Sender address rejected: need fully-qualified address
    Ist der Ansatz grundlegend Falsch? Wie sollte ich es anders angehen?

  • #2
    Meinst du wirklich dass du mit $mail_absender den selben effekt erzielst wie mit $mail->From? Siehst du da keinen Unterschied?

    Kommentar


    • #3
      Ok hab ich jetzt auch gemerkt. Hej es war sehr spät und ich hab gerade erst mit PHP angefangen. Wie auch immer ich habs jetzt geändert.

      PHP-Code:
      $mail->From $email
      Das Formular wird dann auch ohne Fehlermeldung übermittelt, allerdings ohne die E-Mail Adresse des Absenders?!

      Was ist falsch?

      Kommentar


      • #4
        In der einen Zeile: nichts!
        [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
        [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

        Kommentar


        • #5
          bevor die mail gesendet wird, kannst du ja mal gucken, wie das $mail-objekt aussieht

          PHP-Code:
          var_dump($mail);
          exit; 
          Außerdem wissen wir nicht, was du vorher/nachher treibst
          ACHTUNG!!! SIGNATUR!!!
          PHP-Code:
          var_dump($gehirn); exit; 
          0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

          Kommentar


          • #6
            So sieht das komplette Script aus:

            PHP-Code:
            <?php
               
            // Sind die kopierten Dateien nicht im selben Verzeichnis, dann
               // den include-Pfad dorthin erweitern. In diesem Beispiel gehe
               // ich davon aus, daß es ein Verzeichnis phpmailer gibt

               // Aktueller Pfad
               
            $pfad get_include_path();

               
            // Pfad erweitern
               
            $pfad .= PATH_SEPARATOR './phpmailer';

               
            // Pfad setzen
               
            set_include_path(get_include_path() . PATH_SEPARATOR "/phpmailer/dir");

               
            // Die Klasse einbinden
               
            require_once 'class.phpmailer.php';

               
            // Das Objekt erzeugen
               
            $mail = new PHPMailer();

               
            // Wenn mit der Language-Datei gearbeitet werden soll,
               // dann setzten wir hier die Sprache und Pfad
               
            $mail->SetLanguage ("de""./phpmailer/");

               
            // In den meisten Fällen benutzen wir einen SMTP-Server
               
            $mail->IsSMTP();

               
            // Der SMTP-Server ist der gleiche Server, wie er im Mail-Client
               // (Outlook, Pegasus, etc) eingetragen ist
               
            $mail->Host     "XXXXXXXXXXXX";

               
            // Meistens wird eine Authentifizierung gebraucht
               
            $mail->SMTPAuth true;

               
            // Der Benutzername, wie er im Mail-Client eingetragen ist
               // Nicht zu verwechseln mit der Mail-Adresse, bei manchen
               // Servern ist aber der Benutzername gleich der Adressse
               
            $mail->Username "XXXXXXXXX";

               
            // Und nun das Passwort, wie es auch im Mail-Client benutzt wird.
               
            $mail->Password "XXXXXXXXXX";

               
            // Die Empfängeradresse eintragen, der zweite Parameter ist optional
               
            $mail->AddAddress("XXXXXXXXX@XXXX.XX");

               
            // Der Betreff
               
            $mail->Subject  =  "Mitteilung via Kontaktformular";

               
            //Absenderadresse der Email setzen
               
            $mail->From $email;


               
            //Name des Abenders setzen
               // dazu die Felder aus dem Formular abfragen
               
            $vorname = (isset($_POST['vorname']) ? $_POST['vorname'] : ''); # <---- hier wird überprüft, ob das Feld 'name' mitgesendet wurde (jedoch wird keinerlei weitere Überprüfung vorgenommen, z.B. ob überhaupt was drin steht!!!), wenn das Feld gesendet wurde, wird es der Variablen $name zugewiesen
              
            $nachname = (isset($_POST['nachname']) ? $_POST['nachname'] : ''); # <---- hier wird überprüft, ob das Feld 'vorname' mitgesendet wurde (jedoch wird keinerlei weitere Überprüfung vorgenommen, z.B. ob überhaupt was drin steht!!!), wenn das Feld gesendet wurde, wird es der Variablen $vorname zugewiesen
              
            $mail->FromName $vorname ' ' $nachname# <---- der Absendername setzt sich dann aus dem Vornamen und dem NAchnamen zusammen (da die Felder nicht weiter überprüft wurden, könnte hier alles mögliche drin stehen...)


               // Der HTML-Body
                
            $mail->Body "Absenderangaben \n\n " $vorname ' ' $nachname " hat dir eine eMail geschickt!"# <---- die Nachricht selber beinhaltet auch wieder Vor- und Nachname

              //EMail senden und überprüfen ob sie versandt wurde
              
            if(!$mail->Send())
              {
                 
            //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                 
            echo "Die Email konnte nicht gesendet werden";
                 echo 
            "Fehler: " $mail->ErrorInfo;
              }
              else
              {
                 
            //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                 
            echo "Die Email wurde versandt.";
              }
            ?>

            Kommentar


            • #7
              Hier die Infos:

              PHP-Code:
              Die Email wurde versandt.object(PHPMailer)#1 (53) { ["Priority"]=> int(3) ["CharSet"]=> string(10) "iso-8859-1" ["ContentType"]=> string(10) "text/plain" ["Encoding"]=> string(4) "8bit" ["ErrorInfo"]=> string(0) "" ["From"]=> NULL ["FromName"]=> string(16) "XXXXXXXXXXX" ["Sender"]=> string(0) "" ["Subject"]=> string(30) "Mitteilung via Kontaktformular" ["Body"]=> string(65) "Absenderangaben XXXXXXXXX hat dir eine eMail geschickt!" ["AltBody"]=> string(0) "" ["WordWrap"]=> int(0) ["Mailer"]=> string(4) "smtp" ["Sendmail"]=> string(18) "/usr/sbin/sendmail" ["PluginDir"]=> string(0) "" ["ConfirmReadingTo"]=> string(0) "" ["Hostname"]=> string(0) "" ["MessageID"]=> string(0) "" ["Host"]=> string(23) "XXXXXXXXXX" ["Port"]=> int(25) ["Helo"]=> string(0) "" ["SMTPSecure"]=> string(0) "" ["SMTPAuth"]=> bool(true) ["Username"]=> string(8) "m0170b31" ["Password"]=> string(10) "XXXXXXXXX" ["Timeout"]=> int(10) ["SMTPDebug"]=> bool(false) ["SMTPKeepAlive"]=> bool(false) ["SingleTo"]=> bool(false) ["SingleToArray"]=> array(0) { } ["LE"]=> string(1) " " ["DKIM_selector"]=> string(9) "phpmailer" ["DKIM_identity"]=> string(0) "" ["DKIM_domain"]=> string(0) "" ["DKIM_private"]=> string(0) "" ["action_function"]=> string(0) "" ["Version"]=> string(3) "5.1" ["smtp:private"]=> object(SMTP)#2 (7) { ["SMTP_PORT"]=> int(25) ["CRLF"]=> string(2) " " ["do_debug"]=> bool(false) ["do_verp"]=> bool(false) ["smtp_conn:private"]=> resource(4) of type (stream) ["error:private"]=> NULL ["helo_rply:private"]=> string(188) "250-dd3306.testserver.com 250-PIPELINING 250-SIZE 102400000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN " } ["to:private"]=> array(1) { [0]=> array(2) { [0]=> string(23) "XXXXXXXX" [1]=> string(16) "XXXXXXX" } } ["cc:private"]=> array(0) { } ["bcc:private"]=> array(0) { } ["ReplyTo:private"]=> array(0) { } ["all_recipients:private"]=> array(1) { ["XXXXXXXXXXXXX"]=> bool(true) } ["attachment:private"]=> array(0) { } ["CustomHeader:private"]=> array(0) { } ["message_type:private"]=> string(5) "plain" ["boundary:private"]=> array(2) { [1]=> string(35) "b1_4f4a182c984909847d194ebe919b7523" [2]=> string(35) "b2_4f4a182c984909847d194ebe919b7523" } ["language:protected"]=> array(17) { ["provide_address"]=> string(54) "You must provide at least one recipient email address." ["mailer_not_supported"]=> string(25) " mailer is not supported." ["execute"]=> string(19) "Could not execute: " ["instantiate"]=> string(36) "Could not instantiate mail function." ["authenticate"]=> string(35) "SMTP Error: Could not authenticate." ["from_failed"]=> string(35) "The following From address failed: " ["recipients_failed"]=> string(45) "SMTP Error: The following recipients failed: " ["data_not_accepted"]=> string(30) "SMTP Error: Data not accepted." ["connect_host"]=> string(43) "SMTP Error: Could not connect to SMTP host." ["file_access"]=> string(23) "Could not access file: " ["file_open"]=> string(33) "File Error: Could not open file: " ["encoding"]=> string(18) "Unknown encoding: " ["signing"]=> string(15) "Signing Error: " ["smtp_error"]=> string(19) "SMTP server error: " ["empty_message"]=> string(18) "Message body empty" ["invalid_address"]=> string(15) "Invalid address" ["variable_set"]=> string(30) "Cannot set or reset variable: " } ["error_count:private"]=> int(0) ["sign_cert_file:private"]=> string(0) "" ["sign_key_file:private"]=> string(0) "" ["sign_key_pass:private"]=> string(0) "" ["exceptions:private"]=> bool(false) } 

              Kommentar


              • #8
                Ich sehe hier im Script auch nirgends, wo du $email deklarierst.

                PHP-Code:
                var_dump($email);
                exit; 
                was kommt denn da raus?
                ACHTUNG!!! SIGNATUR!!!
                PHP-Code:
                var_dump($gehirn); exit; 
                0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

                Kommentar


                • #9
                  Zitat von MaiKaY Beitrag anzeigen
                  Ich sehe hier im Script auch nirgends, wo du $email deklarierst.

                  PHP-Code:
                  var_dump($email);
                  exit; 
                  was kommt denn da raus?
                  Siehe Oben: Infos. Wird leider in einer Zeile Dargestellt?!

                  Kommentar


                  • #10
                    Zitat von lightmodulator Beitrag anzeigen
                    Siehe Oben: Infos. Wird leider in einer Zeile Dargestellt?!
                    In deinem Code verwendest du $email ohne dass es irgendwo vorher deklariert wurde.
                    [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
                    [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

                    Kommentar


                    • #11
                      Jetzt bin ich total verunsichert... wie muss denn email deklariert werden?

                      Kommentar


                      • #12
                        Ja du willst doch das da ne Email des Versenders drin steht oder? Dann musst du die schon entsprechend reinschreiben ...

                        Oben hast dus doch als Beispiel schon gemacht:

                        $mail->From = "test@test.info";

                        Kommentar


                        • #13
                          PHP-Code:
                          $email "deine-email@adresse.de"
                          ACHTUNG!!! SIGNATUR!!!
                          PHP-Code:
                          var_dump($gehirn); exit; 
                          0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

                          Kommentar


                          • #14
                            die Email des Absenders soll aber aus dem Eingabe Formular übernommen werden!

                            Kommentar


                            • #15
                              Ja, dann fängste diese ab und übergibst sie dann an $email!

                              PHP-Code:
                              $email $_POST["email"]; 
                              Ein bisschen eigeninitiative sollte man schon zeigen!
                              ACHTUNG!!! SIGNATUR!!!
                              PHP-Code:
                              var_dump($gehirn); exit; 
                              0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

                              Kommentar

                              Lädt...
                              X