Los correos electrónicos a iCloud desde mi servidor muestran 'Este mensaje no tiene contenido'

Nuestro sitio web de donaciones envía correos electrónicos cuando un usuario se registra, dona, etc. He recibido muchas quejas de que los donantes reciben correos electrónicos en blanco. Luego de una mayor investigación, resulta que todos estos donantes tienen correos electrónicos de Apple, es decir, @mac.com, @me.com @icloud.com, etc.

Así que conseguí una Mac, creé un correo electrónico con la aplicación de correo para una cuenta de iCloud. Hizo una donación de prueba y recibió un correo electrónico. Cuando veo en la aplicación de correo, veo en el lado izquierdo una vista previa del texto

Gracias por donar a... [el asunto]
Este mensaje no tiene contenido. [la vista previa del cuerpo]

El panel derecho también mostraba el sujeto, pero completamente en blanco para el cuerpo.

También vale la pena señalar que el mismo problema está en iOS (tomé prestado el iPhone 6 plus de mi amigo). Sin embargo, en mi Android usé la aplicación de Outlook e inicié sesión en mi icloud, ¡y allí estaba el texto del cuerpo!

Supongo que es posible que algún software de Apple no analice correctamente el html del correo electrónico...

Todas las búsquedas del problema arrojaron soluciones para un usuario específico que experimentó este problema, pero mi problema es sobre el mensaje de correo electrónico en sí en un cliente de correo electrónico de Apple.

¿Alguien me puede apuntar en la dirección correcta? ¿Existe un estándar html específico para los correos electrónicos de Apple?

¿Existe la posibilidad de pegar o enlazar algunas muestras?
Además, ¿puede verificar si los mensajes llegan bien con el sitio web de iCloud?
1) No estoy seguro de cuál sería la muestra correcta para proporcionar. El mensaje del servidor es html básico ( divs y tables, etc.). Tal vez haya una pista en el mensaje sin procesar... Si puedo obtener el correo electrónico sin formato recibido por icloud, lo colgaré en alguna parte. 2) Otros correos electrónicos se reciben correctamente en el sitio web de icloud. Solo a los correos electrónicos HTML de mi servidor les falta el cuerpo.

Respuestas (1)

Resulta que el problema tiene que ver con los encabezados de contenido y cómo los clientes de correo electrónico los interpretan.

Originalmente, el ENCABEZADO se estableció en Content-Type: multipart/related;y el cuerpo se estructuró como

multipart/alternative
    text/plain
    text/html

Parece que los clientes de iOS y Apple no pudieron analizar multipart/relatedcorrectamente.

Lo resolví cambiando el encabezado a Content-Type: multipart/alternative;y luego estructuré el cuerpo como

    text/plain
    text/html

Aquí está la biblioteca de correo que estaba usando https://github.com/opencart/opencart/blob/1.5.5.1/upload/system/library/mail.php

Discusión similar aquí https://stackoverflow.com/questions/19497672/multipart-messages-incluyendo-multiple-attachments-attachment-and-inline-wi

Y aquí https://stackoverflow.com/questions/7766943/mime-multipart-related-structure-and-apple-mail-is-it-a-bug

Seguimiento: Parece que todavía hay clientes que experimentan este problema. Si alguien tiene una explicación definitiva por favor compartir.