Si el protocolo de aplicación smtp restringe no solo las cabeceras de los mensajes sino tambíen los cuerpos a formato ASCII de 7 bits, para enviar una imagen o archivos de audio o vídeo como lo haces. Codificando los datos binarios a ASCII y esa es la pregunta, como se realiza esa codificación.
Se codifica el contenido binario del archivo a caracteres imprimibles utilizando, por ejemplo, base64, y se setea una cabecera Content-Type con el MIME type del archivo, ademas de una cabecera Content-Encoding indicando el tipo de codificacion que se uso para codificar el cuerpo.