Não consigo enviar e-mail com corpo e anexo em HTML

Não consigo enviar e-mail com corpo e anexo em HTML

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/relatedse 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 mailxo 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).

informação relacionada