Hi!
Lass dir den Inhalt von Variablen ausgeben, um Klarheit über deren tatsächlichen Inhalt zu gewinnen.
Hast du diesen Hinweis von Sven befolgt? Es geht nicht nur um den Inhalt von $mailtxt, wenn du den Fehler finden willst. Auch die anderen Variablen können Unerwartetes enthalten.
Es sieht so aus, als ob dein Code im Hauptscript steht und nicht in einer Funktion gekapselt ist. In dem Fall kannst du nur $GLOBALS ausgeben lassen, wenn du alle Variableninhalte haben willst. Das sollte obendrein noch mir var_dump() erfolgen, denn das ist genauer in seiner Anzeige. Wenn die fehlerhaften Mails auch auf dem Probesystem erzeugt werden, kannst du einfach ein var_dump($GLOBALS); einfügen (vorher ein <pre> erhöht die Übersichtlichkeit der Ausgabe). Sind die Mails nur auf dem Produktivsystem, solltest du die var_dump_Ausgabe in der Mail mitschicken. Dummerweise gibt es keinen Parameter, der die var_dump-Ausgabe in eine Variable umleitet, so dass hier mit Output Buffering gearbeitet werden muss.
ob_start();
var_dump($GLOBALS);
$dump = ob_get_clean();
Schau dir nun all deine verwendeten Variablen an, sie sollten am Ende der Ausgabe zu finden sein.
Lo!