Chris: [HILFE] eMail Header verändern !

hi,
ich habe einen php formmailer. der klappt wunderbar (mit html funktion *stolz*), aber jetzt zu meinem problem:
ist es möglich den header zu verändern? wenn ja geht das wohl auch im 4ten parameter der funktion "mail" oder?
aber wie sind die befehle?

hier der codeschnipsel:
$xtra    = "From:$absender\r\n";
$xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra   .= "X-Mailer: PHP ". phpversion();
mail("$receiver","$betreff","$nachricht","$xtra");

danke im vorraus,
chris :)

  1. Hello,

    aber wie sind die befehle?

    Das kommt darauf an, was Du erreichen willst. Das solltest Du vielleicht erstmal beschreiben.

    hier der codeschnipsel:
    $xtra    = "From:$absender\r\n";
    $xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
    $xtra   .= "X-Mailer: PHP ". phpversion();
    mail("$receiver","$betreff","$nachricht","$xtra");

    Wenn Du auf diese Weise $absender übernimmst, und dieses Feld aus dem Formular kommt, dann könnte man Deinen Formmailer damit injizieren, ihn also mit anderen Headern und Inhalt überschreiben.

    Alle Daten, die aus dem Formular kommen und im Header landen, müssen sorgfältig geprüft werden.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Das kommt darauf an, was Du erreichen willst. Das solltest Du vielleicht erstmal beschreiben.

      hier nochmal der code für den formmailer:

      <?
      include("config.php");
      if($send == ""){
      echo "<link rel=stylesheet href=$style type=text/css>";
      echo "<body bgcolor=$bgcol>";
      echo "<font face=verdana color=$fontcol><small><small><br>";
      echo "<p align=center><br>Nur für Testzwecke gedacht!<br>Für eventuelle Schaden haftet der Sender!!!</p>
      <center><form method=POST action=massenmailer.php?send=yes&aid=yes>
      <table border=0 cellpadding=5 cellspacing=0 style=border-collapse: collapse bordercolor=$cellf1 width=350>
      <tr>
      <td align=right width=183><font face=verdana color=FFFFFF><small><small>Anzahl Mails:</td>
      <td width=167><input type=text name=anzahl size=20 style="color:$cellf2; background-color:$cellf3; border-width:1; border-style=Double;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
      </tr>
      <tr>
      <td align=right width=183><font face=verdana color=FFFFFF><small><small>Absender:</td>
      <td width=167><input type=text name=absender size=20 style="color:$cellf2; background-color:$cellf3; border-width:1; border-style=Double;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
      </tr>
      <tr>
      <td align=right width=183><font face=verdana color=FFFFFF><small><small>Empfänger:</td>
      <td width=167><input type=text name=receiver size=20 style="color:$cellf2; background-color:$cellf3; border-width:1; border-style=Double;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
      </tr>
      <tr>
      <td align=right width=183><font face=verdana color=FFFFFF><small><small>Betreff:</td>
      <td width=167><input type=text name=betreff size=20 style="color:$cellf2; background-color:$cellf3; border-width:1; border-style=Double;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
      </tr>
      <tr>
      <td align=right width=183><font face=verdana color=FFFFFF><small><small>Text:</td>
      <td><textarea name=nachricht rows=3 cols=20 style="color:$cellf2; background-color:$cellf3; border-width:1; border-style=Double;"></textarea>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
      </tr>
      <tr>
      <td align=right width=350 colspan=2>
      <p align=center><input type=submit value=Submit name=B1 style="color:$cellf2; background-color:$cellf3; border-width:1; border-style=Double;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>

      </table>
      <p>&nbsp;</p>

      </center>
      </form>";
      };

      if($send == "yes"){

      echo "<body bgcolor=$bgcol>";
      echo "<center><font face=verdana color=$fontcol><small><small><br> >>> working >>> <br></br></center>";

      $i = 0;

      while ($i<$anzahl) {

      $xtra    = "From:$absender\r\n";
      $xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
      $xtra   .= "X-Mailer: PHP ". phpversion();
      mail("$receiver","$betreff","$nachricht","$xtra");
      print "<center>Status: $i mails versendet<br></center>";
      $i++;

      }
      echo "<link rel=stylesheet href=$style type=text/css>";
      echo "<center><font face=verdana color=$fontcol><small><small><br>$i Nachrichten erfolgreich verschickt!</center>";
      echo "<p>&nbsp</p>";
      };

      ?>

      so schicke ich jetzt eine email ab und guck mir den header an, so sieht der so aus (habe bestimmte stellen unkenntlich gemacht). habe drangeschrieben was weg soll, bzw. was ich gerne verändert hätte:

      Received: from [212.78.204.19] (helo=mcoref02.st2.lyceu.net) <--- DAS SOLLTE WEG bzw. VERÄNDE WERDEN
      by mx22.web.de with esmtp (WEB.DE 4.105 #282)
      id 1DUNwA-0007M3-00
      for xxx@web.de; Sat, 07 May 2005 13:57:38 +0200
      Received: from wmphpf07.st2.lyceu.net (wmphpf07.st2.lyceu.net [212.78.204.67]) <-- <--- DAS SOLLTE WEG bzw. VERÄNDE WERDEN
      by mcoref02.st2.lyceu.net (Postfix) with ESMTP id 2F8FEFEB34
      for xxx@web.de; Sat, 7 May 2005 13:57:38 +0200 (CEST)
      Received: by wmphpf07.st2.lyceu.net (Postfix, from userid 104036734)
      id 237BF58E8; Sat, 7 May 2005 13:57:38 +0200 (CEST)
      To: xxx@web.de
      Subject: IK
      From: bla@bla.de
      Content-Type: text/html
      X-Mailer: PHP 4.3.2
      X-MM-Mail-From-Script: /xxx/xxx.php <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN
      X-Complains-To: xxx@lxxx.de <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN
      X-MM-Mail-From-IP: 172.181.101.253
      Errors-To: xxx@xxx.de <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN
      Message-Id: 20050507115738.237BF58E8@wmphpf07.st2.lyceu.net
      Date: Sat, 7 May 2005 13:57:38 +0200 (CEST)
      Content-Transfer-Encoding: quoted-printable
      Sender: xxx@xxx.de <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN

      Gruß,
      Chris

      1. Hallo Chris,

        die lange Fahne PHP-Code hab ich mir jetzt nicht angesehen, aber das Beispiel des Mail-Headers.

        Die meisten Headerzeilen, die du anscheinend nicht haben willst, werden aber von deinem Provider bzw. dessen Mailserver eingefügt. Daran kannst du nichts ändern.

        Received: from [212.78.204.19] (helo=mcoref02.st2.lyceu.net) <--- DAS SOLLTE WEG bzw. VERÄNDE WERDEN

        Vergiss es. JEDER Mailserver, über den die Nachricht auf ihrem Weg läuft, fügt seinen Footprint ein, also eine Zeile mit Received: und mindestens einem Zeitstempel und der Info, von welchem Host er die Nachricht übernommen hat (manchmal DNS-Name, manchmal nur IP).

        Received: from wmphpf07.st2.lyceu.net (wmphpf07.st2.lyceu.net [212.78.204.67]) <-- <--- DAS SOLLTE WEG bzw. VERÄNDE WERDEN

        dito.

        X-MM-Mail-From-Script: /xxx/xxx.php <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN
        X-Complains-To: xxx@lxxx.de <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN

        Das fügt wahrscheinlich die PHP-Engine deines Providers hinzu. Aber da es nur X-Headers sind, werden sie von Mailservern und Clients in der Regel ignoriert. Erst der Empfänger, der sich die Headerzeilen im Einzelnen anschaut, sieht diese Angaben.

        Sender: xxx@xxx.de <--- DAS SOLLTE WEG bzw. VERÄNDERT WERDEN

        Das stammt von deinem SMTP-Server, der als erster die Nachricht annimmt und weiterleitet.

        Generell gilt: Du kannst mit dem letzten Parameter in mail() nur _zusätzliche_ Headerzeilen angeben. Du hast aber damit keinerlei Einfluss auf Header, die auf dem Übertragungsweg hinzugefügt werden.

        So long,

        Martin

  2. Hallo Chris (oder wie auch immer du jetzt heißen magst),

    bleibe bitte in deinem Ausgangsthread. Wie du siehst, wird weiter unten durchaus gelesen.
    Und Doppelpostings bewirken (wenn sie überhaupt was bewirken) nur, dass du erst recht keine Antwort bekommst.

    Gruß,
    Sebastian

    1. Moin!

      bleibe bitte in deinem Ausgangsthread. Wie du siehst, wird weiter unten durchaus gelesen.
      Und Doppelpostings bewirken (wenn sie überhaupt was bewirken) nur, dass du erst recht keine Antwort bekommst.

      Da mittlerweile klar ist, dass es ein Doppelposting ist, sind hier weitere Antworten nicht mehr möglich.

      • Sven Rautenberg