Ich verstehe nicht warum die PDF in einen String geladen werden muss
1) Schreib "--__BOUNDARY__--" in einen (Memory)Stream
2) Lade die PDF in einen 2. Stream und kopier den Inhalt danach in den 1. Stream mit CopyFrom
3) Schreib "--__BOUNDARY__--" in den Stream
4) Stream versenden
5) Fertig
weil ich ganz den Body in einer Tstringlist zusammenbauen wollte bzw. wir das so machen und dann an IDHTTP übergeben.
Aber normalerweise machen wir das immer Base64 codiert nur dieser Anbieter will es halt binär.
Ich habe das ganze Thema nun auch über einen Stream gelöst und genau so wie du oben beschrieben.