Al enviar notificaciones por correo electrónico con archivos adjuntos, la estructura MIME multipart resultante está malformada. Los archivos adjuntos se incluyen como una parte “alternative” en lugar de como una parte “mixed”. Como resultado, algunos clientes de correo, como Thunderbird, no muestran estos archivos adjuntos porque se interpretan simplemente como un formato alternativo del contenido del correo, similar a texto frente a HTML.
[La siguiente cita proviene de un informe de error esencialmente idéntico contra Mailer, que también depende del módulo Mail.]
lo que espero que sea la estructura del correo electrónico:
multipart/mixed multipart/alternative text/plain text/html application/pdf (es decir, en caso de adjunto PDF)lo que estoy recibiendo:
multipart/alternative text/plain text/html application/pdf (es decir, en caso de adjunto PDF)el efecto práctico:
Thunderbird muestra el cuerpo de texto correcto, según la preferencia del usuario (txt o html), pero no muestra el archivo adjunto como un archivo adjunto (sin embargo, está en el código fuente del correo como un bloque codificado en base64). El correo de iOS muestra un cuerpo de correo vacío y solo el archivo PDF adjunto, ya que es la última entrada y, aparentemente, el cliente de correo solo renderiza esto.
Hay varios informes de error posiblemente relacionados contra el módulo Mail del que depende Discourse. Algunos de estos informes están cerrados con la implicación no declarada de que proporcionar las partes de una manera específica resuelve el problema. No estoy seguro de cuál es el caso aquí, pero varios de esos informes están vinculados desde el informe que cité y enlazé anteriormente.