Если я правильно понимаю, косяк в кривом составлении multipart. У вас в письме значится только один
Content-Type: multipart/alternative;
Что нам говорит о том, что все вариации частей являются альтернативами (т.е. заменами) друг к другу. А это явно не то, что вы хотели. В письме у вас должна быть конструкция типа:
Content-Type: multipart/mixed (смешанное содержание)
- Content-Type: multipart/alternative (тут мы располагаем текстовую и html част письма, как замену друг-другу)
- Content-Type: text/html
- Content-Type: text/plain
- Content-Type: image/jpeg
- Content-Type: application/octet-stream