html email outlook mime multipart

Agregar un prefijo HTML a EMail MIME hace que algunos clientes muestren el cuerpo vacío



outlook multipart (0)

Estoy tratando de agregar una parte HTML a un correo electrónico, que puede ser cualquier tipo de MIME (probablemente mixta o alternativa , la obtenemos sin procesar de GMail).
Así es como lo hacemos actualmente:

email_copy = deepcopy(original_email) if ''Content-Type'' in original_email: original_email.replace_header(''Content-Type'', ''multipart/mixed'') else: original_email.add_header(''Content-Type'', ''multipart/mixed'') warning_part = [MIMEText(warning_html, ''html'', ''UTF-8'')] original_email.set_payload(warning_part) original_email.attach(email_copy)

El fragmento anterior funciona bien para el cliente web de GMail, la aplicación de GMail para Android, Outlook para Mac, etc. Sin embargo, en algunos clientes de correo electrónico específicos, el correo electrónico se muestra de manera diferente:

  • En la aplicación de Outlook para Android , el cuerpo falta y no hay archivos adjuntos;
  • Y en la aplicación Outlook 2016 en Windows 8.1 , el cuerpo falta pero aparece como 2 archivos adjuntos (texto y html).

Ahora me encontré con este hilo:
HTML-Correo electrónico con archivos adjuntos en línea y archivos adjuntos que no están en línea (@Renat Gilmanov)
Y éste:
Correo multiparte / alternativa frente a multiparte / mixta (@Iain)

El primero se refiere a controlar si las imágenes se muestran en línea o como archivos adjuntos. Traté de aplicarlo a mi caso, pero sigo teniendo el mismo comportamiento. El segundo sugiere una estructura específica que tampoco podría hacer que funcione en mi caso.

¿Cuál es la estructura correcta que debo usar para agregar un prefijo HTML al mensaje original, de modo que se muestre uniformemente en todos los clientes principales de EMail? PD Actualmente estoy tratando de evitar editar la parte html original, pero es mi último recurso.

¡Cualquier ayuda sería muy apreciada!