Primeiro, algum contexto: Estou usando a versão heirloom-mailx como a seguinte no tópico: link
Estou usando o Ubuntu 16.04 Xenial. Tentei também no Ubuntu Server 16.04.
Para enviar e-mails, estou usando a seguinte função para enviar e-mails usando o mailx (heirloom mailx no bash):
sendmail() {
#Sending Report Email
heirloom-mailx -a $2 -v -s ""$(echo -e "subject 3\nContent-Type: text/html")"" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://mail.mymailserver:port \
-S from="[email protected]" \
-S [email protected] \
-S smtp-auth-password='password' \
-S ssl-verify=ignore \
$1 < body.html
}
Onde $ 2 é o anexo e $ 1 é o destino. Notas: 1. Os arquivos anexados são impressos dentro do corpo também, mas isso pode ser útil se você quiser apenas enviar um arquivo html sem anexos. 2. A opção "-v" é impressa por extenso, então você pode ter um problema com .mime.types que pode ser ignorado. Remova a opção se você não quiser verboso no mailx. 3. Você ainda obterá o seguinte no corpo se usar a opção "-a": Esta é uma mensagem com várias partes no formato MIME. - = - = fFPa7dLqoSF1TGj-YDc2k8bdvmjpix_4sKFT = - = Tipo de Conteúdo: text / plain; charset = US-ASCII Content-Disposition: in-line
Neste caso, estou anexando um arquivo de texto simples. Removendo "-a $ 2" do comando e você está pronto para imprimir a mensagem html. Então o resultado final seria:
sendmail() {
#Sending Report Email
heirloom-mailx -s ""$(echo -e "subject 3\nContent-Type: text/html")"" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://mail.mymailserver:port \
-S from="[email protected]" \
-S [email protected] \
-S smtp-auth-password='password' \
-S ssl-verify=ignore \
$1 < body.html
}
Experimente e me avise. Eu testei no meu final e funciona.
Espero que isso ajude! Atenciosamente