Fehler im Mail-Header (reply-to) nur wo???

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

  • Fehler im Mail-Header (reply-to) nur wo???

    Hallo!

    Ich erhalte ständig folgende Fehlermeldung von einem Provider, weil woh ein Fehler in meinem php-Script sein soll.

    So wie ich das verstehe, soll ein Fehler in Header-Abschnitt von Reply-to sein.

    <senio-service@freenet.de>: host mx.freenet.de[194.97.55.148] said: 550 syntax error in header (in reply to end of DATA command)

    Und hier der Code des Scripts:
    PHP-Code:
    $header "MIME-Version: 1.0\r\n"
    $header .= "from: ".$copyto." <".$strFrom.">\r\n";
    $header .= "Reply-To: ".$reply_to." <".$reply_to.">\r\n";
    $header .= "X-Mailer: $homepagename"
    Was mache ich denn falsch in dem Code...!?
    Danke
    Tom

  • #2
    Das muß nicht unbedingt am Reply-To-Header liegen. "in reply to end of DATA command" heißt lediglich, dass die Fehlermeldung erst nach dem DATA Kommando kam, sich aber auf den Header der Mail bezieht.

    Irgendwas in deinen Headern ist also syntaktisch nicht korrekt. Ich würde da erstmal das From groß schreiben und zur Kontrolle die gesamten Header ausgeben lassen.

    Auf X-Mailer solltest du übrigens verzichten. Kein mir bekannter Mailserver oder -client wertet das in irgendeiner Form aus, einige Spamfilter könnten es aber als Risikofaktor bewerten. Wirkt also bestenfalls gegen dich!

    Kommentar


    • #3
      Das komische ist ja auch, dass das nur bei bestimmten Adressen passiert. Habe mal ein paar Dummies angelegt, die dann auch real existieren und folgendes Stand dann als komplette Fehlermeldung:

      [Mit Header] [Systemschrift] [Rohformat] [Speichern] [Drucken]
      Von:
      An:
      Datum: 18.03.2006 00:00
      Betreff: [ Kein Betreff ]
      Final-Recipient: rfc822; frenchlover69@freenet.de
      Action: failed
      Status: 5.0.0
      Diagnostic-Code: X-Postfix; host mx.freenet.de[194.97.55.148] said: 550 syntax
      error in header (in reply to end of DATA command)

      Content-Description: Undelivered Message
      Content-Type: message/rfc822

      Received: from localhost.localdomain (srv9.b-one.net [195.47.247.59])
      by mo1.b-one.net (Postfix) with ESMTP id 9457FBA4723
      for <frenchlover69@freenet.de>; Sat, 18 Mar 2006 14:12:52 +0100 (CET)
      To: frenchlover69@freenet.de
      Subject: FormularMailer
      MIME-Version: 1.0
      From: rowdys3@wer.de <webmaster@thru-soft.de>
      Reply-To: rowdys3@wer.de <rowdys3@wer.de>
      Message-Id: <20060318131252.9457FBA4723@mo1.b-one.net>
      Date: Sat, 18 Mar 2006 14:12:52 +0100 (CET)

      Sie haben eine Mail am 18.03.2006 um 14:16 erhalten!

      ___________________________________________________

      Betreff : Formular

      VName : 1

      Name : 2

      SenderMail : rowdys3@wer.de



      __________________________

      Datum:18.03.2006
      Uhrzeit:14:16 Uhr
      IP:172.178.79.8
      Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Lycos-Online)

      --9457FBA4723.1142687572/mo1.b-one.net--
      Danke
      Tom

      Kommentar


      • #4
        Was mache ich denn falsch in dem Code...!?
        Der letzte Header sollte immer mit einem doppelten CRLF abgeschlossen werden.
        PHP-Code:
        [...]
        $header .= "X-Mailer: $homepagename\r\n\r\n"
        Oder lass den x-mailer mal weg wie bereits geschrieben und hänge den doppelten CRLF dann an den letzten Header, den du verwendest.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Hallo Tobi,

          ich habe den X-Mailer weggelassen und den letzten Header-Eintrag mit dem Doppelten Lottchen beendet. Das Problem ist weiterhin das GLEICHE.

          Was kann es denn nun noch sein???

          Tom
          Danke
          Tom

          Kommentar


          • #6
            Also dann poste mal folgende Codeausschnitte:

            -die gesamten Header der Mail
            -der Aufruf der Mail Funktion

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Hier der FormMailer, welche nicht der Beste ist, aber einigermaßen flexibel.

              PHP-Code:
              <?
              $datum   = strftime("%d.%m.%Y");
              $zeit    = date("H:i");
              $https   = $HTTP_POST_VARS;
              $email   = $_POST['email'];
              $sender  = $_POST['sender'];
              $betreff = $_POST['betreff'];
              $url     = $_POST['url'];
              $rec2    = $_POST["email2"];
              $copy    = $_POST["copy"];
              $copyto  = $_POST["SenderMail"];
              $strFrom = "mail@dummy.de";
              $typ     = $_POST["typ_sender"];
              $reply_to= "mail@dummy.de";


              $text="Sie haben eine Mail am $datum um $zeit erhalten!\n
              ___________________________________________________
              \n";

              $text2="Sie haben ein Formular am $datum um $zeit ausgefüllt!\n
              Dabei wurden folgende Angaben übermittelt:\n
              ___________________________________________________
              \n";


              $hidden_fields = array('next', 'url','copy','email','typ_sender','sender'); 

              foreach ($https as $key => $value) 

                  if (! in_array($key, $hidden_fields)) 
                      $text = $text."".$key." : ".stripslashes($value)."\n\n"; 


              foreach ($https as $key => $value) 

                  if (! in_array($key, $hidden_fields)) 
                      $text2= $text2."".$key." : ".stripslashes($value)."\n\n";


              if(empty($betreff)) {$betreff="Formularübermittlung";}
              if(empty($email)) {$email= $strFrom;}
              if(empty($url)) {$url='http://www.dummy.de';}

              $reply_to = $copyto;
              if ($typ ==1) {$reply_to = $sender;}
              if(empty($typ)) {$reply_to=$email;}


              $header = "from: FormMailer<".$strFrom.">\r\n";
              $header .= "Reply-To: ".$reply_to."\r\n\r\n";

              mail($email,$betreff,$text,$header) or die ("Fehler beim Übermitteln!");

              if ($rec2 != "") mail($rec2,$betreff,$text,$header);
              if ($copy != "") mail($copyto,$betreff,$text2,$header);

              Header("Location: ".$url);
              Hier dann mal ein Formular, wie es aussehen könnte:

              <html>
              <head>
              <meta http-equiv="Content-Language" content="de">
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              <title>Kontakformular</title>
              <style type="text/css">

              body {background-color:#FFFFFF; font-family:"Arial";}

              h1.farbig {color:#000000; font-family:"Arial"; font-size:20px;}

              tr {font-family:"Arial"; font-size:12px;}

              .td {font-family:"Arial"; font-size:12px;}

              p.farbig {color:#000000; font-family:"Arial"; font-size:12px;}

              p.anno {color:#000000; font-family:"Arial"; font-size:12px;}

              </style>
              <script language=javaScript><!--
              function checkSenderMail(){
              if(document.Kontakt.SenderMail.value.length==0)
              return false;
              for(i=0;i<document.Kontakt.SenderMail.value.length;i++){
              if((document.Kontakt.SenderMail.value.charAt(i)<"-") ||
              (document.Kontakt.SenderMail.value.charAt(i)=="/") ||
              ((document.Kontakt.SenderMail.value.charAt(i)>"9") && (document.Kontakt.SenderMail.value.charAt(i)<"@")) ||
              ((document.Kontakt.SenderMail.value.charAt(i)>"Z") && (document.Kontakt.SenderMail.value.charAt(i)<"a") && (document.Kontakt.SenderMail.value.charAt(i)!="_")) ||
              (document.Kontakt.SenderMail.value.charAt(i)>"z") ||
              (document.Kontakt.SenderMail.value.indexOf('@')==-1) ||
              (document.Kontakt.SenderMail.value.indexOf('.')==-1) ){
              return false;
              }
              }
              return true;
              }
              function chkFormular()
              {
              if(!checkSenderMail()){
              alert("Bitte eine gültige E-Mail-Adresse eingeben");
              document.Kontakt.SenderMail.focus();
              return false;
              }
              }
              //--></script>
              </head>
              <body >
              <div align="center">
              <h1 class="farbig">Kontaktformular</h1>
              <p class="anno">Mit diesem Formular können Sie uns erreichen.</p>
              <form name="Kontakt" action="http://www.die-domain.de/formmailer.php" onSubmit="return chkFormular()" enctype="multipart/form-data" method="POST">

              <input type="hidden" name="typ_sender" value="1">
              <input type="hidden" name="sender" value="">
              <input type="hidden" name="copy" value="">
              <input type="hidden" name="url" value="http://www.css-maker.de">
              <input type="hidden" name="email" value="frenchlover69@freenet.de" >
              <input type="hidden" name="Betreff" value="Formular" >

              <table border="0px" cellpadding="3px" cellspacing="3px" width="100%">
              <tr valign="middle" height="25">
              <td width="50%" class="td" align="right">Name</td>
              <td class="td"><input type="text" name="Name" value="" size="20" MaxLength="40"></td>
              </tr>
              <tr valign="middle" height="25">
              <td width="50%" class="td" align="right">E-Mail</td>
              <td class="td"><input type="text" name="SenderMail" value="" size="20" MaxLength="40"></td>
              </tr>
              <tr><td align="center" colspan="2">
              <input type="submit" name="next" value="Abschicken">
              <input type="reset" name="next" value="Zurücksetzen">
              </td></tr>
              </table>
              </form>
              </div>
              </body>
              </html>

              Und nun nochmal die Fehlermail des Providers:

              X-Envelope-From: <>
              X-Envelope-To: <webmaster@mein -account.de>
              X-Delivery-Time: 1142758490
              Received: from mx1.b-one.net (mx1.b-one.net [195.47.247.99]) by mailin.webmailer.de (8.13.1/8.13.1) with ESMTP id k2J8sn4Y015095 for <webmaster@mein-account.de>; Sun, 19 Mar 2006 09:54:49 +0100 (MET)
              Received: from mo1.b-one.net (mo1.b-one.net [195.47.247.27]) by mx1.b-one.net (Postfix) with ESMTP id 078DA140007F for <webmaster@thru-soft.de>; Sun, 19 Mar 2006 09:54:49 +0100 (CET)
              Received: by mo1.b-one.net (Postfix) id 88024BA44D8; Sun, 19 Mar 2006 09:51:05 +0100 (CET)
              Date: Sun, 19 Mar 2006 09:51:05 +0100 (CET)
              From: MAILER-DAEMON@mo1.b-one.net (Mail Delivery System)
              Subject: Undelivered Mail Returned to Sender
              To: webmaster@thru-soft.de
              MIME-Version: 1.0
              Content-Type: multipart/report; report-type=delivery-status; boundary="25F3ABA43ED.1142758265/mo1.b-one.net"
              Message-Id: <20060319085105.88024BA44D8@mo1.b-one.net>
              X-Virus-Scanned: by b-one.net
              This is the Postfix program at host mo1.b-one.net.

              I'm sorry to have to inform you that your message could not
              be delivered to one or more recipients. It's attached below.

              For further assistance, please send mail to <postmaster>

              If you do so, please include this problem report. You can
              delete your own text from the attached returned message.

              The Postfix program

              <frenchlover69@freenet.de>: host mx.freenet.de[194.97.50.144] said: 550 syntax
              error in header (in reply to end of DATA command)

              Attachments

              Ich hoffe, dass Ihr jetzt alle Infos habt, die man zur Fehlersuche brauchen kann...Ich habe es auch noch ein paar mal überflogen, konnte aber nix ausmachen, leider!

              Danke Tom
              Danke
              Tom

              Kommentar


              • #8
                Dein Formular ist ein Geschenk an alle Spamer. Mach dich mal über Mail Injection schlau!

                Zum Problem: Verzichte erstmal auf alle zusätzlichen Header. Wenn das klappt, kannst du einen nach dem anderen wieder hinzunehmen.

                Kommentar


                • #9
                  danke für den tipp. wenn ich gar keinen header verwende, dann gehts...werde nun mal nacheinander wieder welche einschalten...und mich dann über mail injection informieren...
                  Danke
                  Tom

                  Kommentar


                  • #10
                    Also man glaubt es nicht, aber freenet.de hat sich doch tatsächlich noch bei mir gemeldet. Allerdings mit ner Meesage, mit der ich nicht viel anzufangen weiss. Vielleicht könnt Ihr mir ja noch etwas auf die Sprünge helfen...!?

                    Hier mal Teile der Mail:
                    Der von Ihnen übermittelte Header deutet darauf hin, dass die Zustellung aufgrund einer im Empfängerfeld eingetragenen ungültigen Zeichenfolge scheitert.

                    Wahrscheinlich handelt es sich hierbei um die Zeichenfolge "rfc822;" (in Ihrem Beispielheader zu finden in der Zeile "Final-Recipient: rfc822; dummy@freenet.de").

                    Bitte prüfen Sie das von Ihnen zum Mailversand verwendete Skript, speziell die Funktionalität, welche das Recipient-Feld generiert. Passen Sie das Skript bitte entsprechend an, sodass nur noch die E-Mail Adresse im Recipient-Feld eingetragen wird.
                    Ich weiss nun ehrlich gesagt nicht genau, wie ich das checken soll, wo ich doch nur die mail-Funktion von php benutze...Ich bin selbst nur bei b-one.net gehostet. Müssten die mir dabei helfen, oder wie kann ich das Problem doch noch selbst lösen!?
                    Danke
                    Tom

                    Kommentar

                    Lädt...
                    X