
Não consigo enviar e-mail com corpo html com anexo. 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"
Command1 funciona bem. Vejo e-mail com corpo HTML.
No segundo comando, o corpo não está no formato html.
Por favor, deixe-me saber se estou faltando alguma coisa aqui.
Responder1
Não sei qual ferramenta de e-mail você está usando (e qual versão), mas se for GNU mailutils, você provavelmente encontrará este bug:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22 Uma solução alternativa é usar a opção de linha de comando -M (ou --mime) para compor mensagens MIME.
Responder2
Os anexos são sempre enviados usando mensagens MIME multipartes, portanto, o tipo de conteúdo raiz descreve oestrutura multipartes em si, e cada parte tempróprioCabeçalho Content-Type dentro. Você deve verificar Content-Type: multipart/related
se dá uma olhada na fonte dessa mensagem.
AFAIK, nem mailutils nem mailx têm a opção de alterar o Content-Type da parte do corpo separadamente.
Responder3
Com uma versão atual do GNU Mailutils, isso pode ser feito usando mailx
o seguinte:
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]
Observe que --content-type
é uma opção posicional referente atodosseguintes anexos (se houver mais de um) e o último valor especificado também é usado para o corpo da mensagem (é por isso que é alterado novamente no final).