O random string dediğimiz şey boundary olarak geçiyor. Aslında random yapmak zorunda değilsiniz onu, sabit bıraksanız da olur. Ben burada yaşadığınız sorunun file_get_contents'ten ötürü olduğunu düşünüyorum.
Şunu inceler misiniz:
https://gist.github.com/hmic/60ad53d...e303199cc22f96
Burada curl ile değil ama
Content-Transfer-Encoding: base64 kısmını sizin curl kodunuza uygulayıp deneyin isterseniz.