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!
        Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
        Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

        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.
                    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                    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