No puedo enviar un correo electrónico con cuerpo html y archivos adjuntos

No puedo enviar un correo electrónico con cuerpo html y archivos adjuntos

No puedo enviar correo electrónico con cuerpo html con archivo adjunto. Comando1:

echo "<html><b>Hello</b></html>" | mail -s "Subject #1" -a "content-type: text/html" [email protected]

Comando2:

echo "<html><b>Hello</b></html>" | mail -s "Subject #2" -a "content-type: text/html" [email protected] -A "/Users/asdf/Downloads/00000001.pdf" 

Comando1 funciona bien. Veo un correo electrónico con cuerpo html.

En el segundo comando, el cuerpo no está en formato html.

Por favor, avíseme si me falta algo aquí.

Respuesta1

No sé qué herramienta de correo estás usando (y qué versión), pero si es GNU mailutils probablemente te encuentres con este error:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22 Una solución alternativa es utilizar la opción de línea de comando -M (o --mime) para redactar mensajes MIME.

Respuesta2

Los archivos adjuntos siempre se envían mediante mensajes MIME de varias partes, por lo que el tipo de contenido raíz describe elestructura multiparte en sí, y cada parte tienesu propioEncabezado de tipo de contenido en el interior. Deberías comprobarlo Content-Type: multipart/relatedsi echas un vistazo a la fuente de dicho mensaje.

AFAIK, ni mailutils ni mailx tienen la opción de cambiar el tipo de contenido de la parte del cuerpo por separado.

Respuesta3

Con una versión actual de GNU Mailutils, esto se puede lograr de mailxla siguiente manera:

echo "<html><b>Hello</b></html>" | mailx --content-type="application/pdf" --attach=/Users/asdf/Downloads/00000001.pdf --content-type="text/html" --subject="Subject #2" [email protected]

Tenga en cuenta que --content-typees una opción posicional que se refiere atodosiguientes archivos adjuntos (si hay más de uno) y el último valor especificado también se usa para el cuerpo del mensaje (es por eso que se cambia nuevamente al final).

información relacionada