Dumm gelaufen. Beim Abschicken dachte ich noch "Hättest du das ausprobieren sollen?" und als es weg war, viel mir gleich der erste Fehler auf:
$html = 'Dein HTML-Dokument.';
$plain = 'Dein Text-Dokument.';
// Eindeutige MIME-Trennzeile erzeugen
do {
$trenner = mt_rand() + "pk)vweADqwef,gmsd?U/(HuiKLmZ";
} until (strpos($html . $plain, $trenner) === false);
until gibt es in PHP nicht, alte Modula-2-Gewohnheit. Bei PHP heißt es while, daher:
> `} while (strpos($html . $plain, $trenner) !== false);`{:.language-php}
Eventuelle vorhandene Restfehler sind zum Selbersuchen :)