Enviando HTML usando mailx com postfix 2.6.6 e centOS 6.4

Enviando HTML usando mailx com postfix 2.6.6 e centOS 6.4

Estou tentando enviar um email em HTML do nosso servidor CentOS para os usuários. No longo prazo estarei construindo um programa COBOL que executa o comando para enviar relatórios ao usuário.

Aqui estão alguns detalhes.

  • CentOS 6.4
  • MAU: Mailx
  • MTA: Postfix 2.6.6
  • O Postfix está executando uma retransmissão por meio de um servidor Exchange.

Quanto aos comandos que tentei executar. O que mais vi hoje foi o seguinte.

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html

Depois de executar o comando mostrado, recebo um erro dizendo "Tipo de conteúdo: texto/html: arquivo ou diretório inexistente". Tenho certeza de que após uma determinada atualização eles pararam de permitir -a como sinalizador para designação de tipo de conteúdo.

Também tentei adicionar o 'Content-Type: text/html' ao arquivo bodytext.html real como a primeira linha. Não sei o que posso fazer para enviar o e-mail em HTML. Algumas das fontes que encontrei dizem que mailx e postfix não podem enviar emails em HTML corretamente. Espero que não seja o caso, mas se for, gostaria de saber qual a sua opinião sobre outras tecnologias MAU e MTA.

Responder1

Como você parece ter controle total sobre o arquivo de texto gerado, a maneira mais simples e provavelmente mais portátil seria envolver /usr/sbin/sendmaildiretamente.

/usr/sbin/sendmail -t < complete-mail.txt

Isso exigiria que você mesmo adicionasse todos os cabeçalhos importantes ( From, To, Subjecte Content-Type). O arquivo deve ficar assim:

From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html

<html>…</html>

O Postfix adicionará cabeçalhos ausentes, mas necessários, como Date.

Responder2

Você ao menos leu o manual domailx, especialmente a -aopção?

-a file Anexe o arquivo fornecido à mensagem.

DeResposta de Gilles, já que o CentOS está usando esta versão do mailx:

Com a herançamailx, não há maneira conveniente. Uma possibilidade de inserir cabeçalhos arbitrários é definir editheaders=1 e usar um editor externo (que pode ser um script).

## Prepare a temporary script that will serve as an editor.
## This script will be passed to ed.
temp_script=$(mktemp)
cat <<'EOF' >>"$temp_script"
1a
Content-Type: text/html
.
$r test.html
w
q
EOF
## Call mailx, and tell it to invoke the editor script
EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF
~e
.
EOF
rm -f "$temp_script"

O Postfix certamente pode enviar e-mails em HTML.

informação relacionada