
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/related
si 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 mailx
la 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-type
es 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).