Simon: XML Datei an Email anhängen

Hallo zusammen,
habe hier ein Script, mit dem ich Dateien, die auf einem Webserver gespeichert sind, an eine Email anhängen kann und diese dann versenden kann. Soweit nichts neues und dieses Script ging bis jetzt auch mit verschiedenen Dateitypen (.pdf, .xsl, .zip usw.).
So jetzt wollte ich eine xml Datei anhängen, die ebenfalls auf dem Server gespeichert ist. Diese wird auch schön brav mitgeschcikt, nur werden an das Ende der XML Datei noch irgend welche Glyphen angehängt.

Hier mal ein Beispiel einer XML Datei mit Glyphen:

<?xml version="1.0" encoding="UTF-8" ?>  
  <F>  
  <P1>  
  <Firma>Testfirma</Firma>  
  <Ansprechpartner>Testap</Ansprechpartner>  
  <Strasse>Testastrasse</Strasse>  
  <PLZOrt>Testplzort</PLZOrt>  
  <Telefon>Testtelefon</Telefon>  
  <Email>Testap</Email>  
  </P1>  
  <P2>  
  <Datum>TestDatum</Datum>  
  </P2>  
  </F>  
**Hier dann die Glyphen, leider kann ich diese nicht mit senden**

Und hier das php Script:

//XML Datei versenden  
$empfaenger = "<email@email.de>";  
$subject = 'irgendwas';  
  
$message = "Sehr geehrter xyz...,\n\n";  
  
  
$boundary     = strtoupper(md5(uniqid(time())));  
  
$headers = "From: <mail@mail.de>\n";  
$headers .= "MIME-Version: 1.0";  
$headers .= "\nContent-Type: multipart/mixed; boundary=$boundary";  
$headers .= "\n\nThis is a multi-part message in MIME format ";  
$headers .= "--  Dies ist eine mehrteilige Nachricht im MIME-Format";  
$headers .= "\n--$boundary";  
$headers .= "\nContent-Type: text/plain; charset=iso-8859-1";  
$headers .= "\nContent-Transfer-Encoding: 8bit";  
  
$headers .= "\n\n$message";  
  
//XML an Email anhängen  
$verzeichnis = openDir("xmldaten"); // Öffnet ein Unterverzeichnis  
while ($file = readDir($verzeichnis)) { // Verzeichnis lesen  
  if ($file != "." && $file != "..") { // Höhere Verzeichnisse nicht anzeigen!  
   if(strstr($file, "xyz.xml")){  
  
   $file_content = fread(fopen("xmldaten/".$file,"r"),filesize("xmldaten/".$file));  
   $file_content = chunk_split(base64_encode($file_content));  
  
   $headers .= "\n--$boundary";  
   $headers .= "\nContent-Type: text/xml; name=\"$file\"";  
   $headers .= "\nContent-Transfer-Encoding: base64";  
   $headers .= "\nContent-Disposition: attachment; filename=\"$file\"";  
   $headers .= "\n\n$file_content";  
  
  }  
 }  
}  
closeDir($verzeichnis); // Verzeichnis schließen  
  
mail($empfaenger, $subject, $message, $headers);

Kann mir Jemand sagen, was da los ist? Hab im Netz so gut wie nichts gefunden. Vielen Dank für die Hilfe!

  1. Hellihello

    na vermutlich oder vielleicht erwischt der beim Lesen noch irgendwelche Leerzeichen am Ende.

    $file_content = fread(fopen("xmldaten/".$file,"r"),filesize("xmldaten/".$file));

    $file_content = chunk_split(base64_encode($file_content));

    könnten relevant sein. Was passiert, wenn Du mit trim($file_content) Whitespaces beim gelesenen Filecontent entfernst?

    du könntest zudem mit file_get_contents() arbeiten.

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt