toby: Problem mit Mail Header

hallo,
hab 2 verschiedene server, auf denen ich ein und dasselbe script getestet habe. darin ist diese funktion enthalten:
function smail($to,$subject,$msg,$from,$pattern=false)
{
 if (is_file($msg) && is_array($pattern))
 {
  foreach ($pattern as $key => $output)
  {
   $base[] = $key;
   $bnew[] = $output;
  }
  $fd = @fopen($msg, "r");
  while (!feof($fd))
  {
   $line = fgets($fd, 2048);
   $content .= str_replace($base, $bnew, $line);
  }
  fclose($fd);
 }
 else
 {
  $content = $msg;
 }
 mail($to, $subject, $content,
 "From: $from\r\n"
 ."Reply-To: $from\r\n"
 ."Content-Type: text/html"
 );
}

nun stelle ich leider fest, dass die mails, von server1 verschickt, einwandfrei dargestellt werden. dieselbe mail mit gleichem text etc versandt von server2 hat erstmal das
Reply-To: no@spa.mm
Content-Type: text/html
Message-Id: 20060808000212.B814A1C36F@linux.site
Date: Tue,  8 Aug 2006 02:02:12 +0200 (CEST)
und dann noch alles plain text anstelle von mime, also es steht dann <br> dran etc...
wie kann ich das beheben sodass es auf beiden gleich funktioniert.
danke

  1. echo $begrüßung;

    hab 2 verschiedene server, auf denen ich ein und dasselbe script getestet habe. darin ist diese funktion enthalten:

    Wenn der Fehler in dieser Funktion wäre, ließe sich das Problem nicht wirklich nachvollziehen, weil deine Eingabedaten uns nicht bekannt sind. Wichtiger wäre zu wissen, welcher Inhalt in den Variablen steckt, die du der mail()-Funktion übergibst.

    mail($to, $subject, $content,
    "From: $from\r\n"
    ."Reply-To: $from\r\n"
    ."Content-Type: text/html"

    Wenn sich in diesen Daten kein Fehler finden lässt solltest du den Provider vom "fehlerhaften" Server fragen, ob er mit den Mails irgendwas anstellt, bevor er sie versendet.

    Reply-To: no@spa.mm
    Content-Type: text/html
    Message-Id: 20060808000212.B814A1C36F@linux.site
    Date: Tue,  8 Aug 2006 02:02:12 +0200 (CEST)

    Sind das Zeilen die im Header auftauchen oder stehen sie eventuell im Nachrichtentext?

    wie kann ich das beheben sodass es auf beiden gleich funktioniert.

    Bevor Aussagen zur Problembehebung gegeben werden können, muss erstmal dessen Ursache bekannt sein oder ermittelt werden.

    echo "$verabschiedung $name";

    1. hi

      Wenn der Fehler in dieser Funktion wäre, ließe sich das Problem nicht wirklich nachvollziehen, weil deine Eingabedaten uns nicht bekannt sind. Wichtiger wäre zu wissen, welcher Inhalt in den Variablen steckt, die du der mail()-Funktion übergibst.

      als content erhält die funktion z.b. ganz einfach mal $content='bla<br>bla2';

      mail($to, $subject, $content,
      "From: $from\r\n"
      ."Reply-To: $from\r\n"
      ."Content-Type: text/html"

      mir fiel auf, dass es auf dem anderen server ging, als ich \r\n auch bei der letzten zeile anfügte. dafür gings beim einen dann nicht sauber raus :(

      Wenn sich in diesen Daten kein Fehler finden lässt solltest du den Provider vom "fehlerhaften" Server fragen, ob er mit den Mails irgendwas anstellt, bevor er sie versendet.

      es handelt sich um root server und es wird weder ein spamm filter noch sonst irgendwas zwischengeschaltet... also versteh ich nicht, was da los ist.

      Reply-To: no@spa.mm
      Content-Type: text/html
      Message-Id: 20060808000212.B814A1C36F@linux.site
      Date: Tue,  8 Aug 2006 02:02:12 +0200 (CEST)

      Sind das Zeilen die im Header auftauchen oder stehen sie eventuell im Nachrichtentext?

      es ist ja gerade das problem, dass die daten nicht im header sind, sonder richtig als text ausgegeben werden.
      danke für Hilfe