Még egyszer: az XML file nem módosul. Az szépen ott marad a helyén.
Amit te látsz, az az úgynevezett MIME boundary, a multipart üzeneteknél ez a határoló, ami megmondja, hogy az adott csatolmány meddig tart.
Ha megnézed a leveledet, fentebb lesz benne egy olyan rész, hogy
Content-Type: multipart/mixed; boundary=dXZxX3pvjmlmbzg880ZXQOez
Ez alapján tudja bármelyik helyesen működő kliens, hogy az XML csatolmány mikor kezdődik, és meddig tart.
A te feldolgozód nem ilyen, nem képes kezelni helyesen a MIME multipart üzeneteket.
A Thunderbuird szabványosan jár el, jól kezeli a dolgokat, NEM módosítja az XML-t. Csak éppen a feldolgozó oldal fos, nem szabványkövető, emiatt a szabványos e-mailekkel nem tud mit kezdeni.
Valószínűleg a probléma az, hogy a feldolgozód soronként dolgozza fel a MIME üzenetet, és leszarja a MIME multipart boundary-t. És azt hiszi, hogy az XML file kezdeze a <?xml> kezdetű sorban van, a vége pedig a </> sorban, és az adott sorban nincs más. Ez csak akkor igaz, ha az XML file-od újsor karakterrel záródik. Ugyanis ekkor a MIME boundary a következő sor elejére kerül. Ha nem újsor karakter a vége az XML állománynak, akkor a MIME boundary (nagyon helyesen) nem kerül új sorba.
Azt nézd meg, ha már ilyen balfasz a feldolgozó programod, hogy miért áll elő olyan XML, aminek a legutolsó sora nem újsor karakterrel ér véget. Itt van a problémád (a fostartyál feldolgozóprogramon kívül), az XML előállításában, nem a Thunderbirdben.