Enviando HTML usando mailx com postfix 2.6.6 e centOS 6.4 [duplicado]

3

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 um relé por meio de um servidor de troca.

Quanto aos comandos que eu tentei executar. O que eu mais vi hoje tem sido 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 "Content-Type: text / html: Nenhum arquivo ou diretório". Tenho certeza de que, após uma certa atualização, eles pararam de permitir -a como sinalizador da designação Content-Type.

Eu também tentei adicionar o 'Content-Type: text / html' ao arquivo bodytext.html como a primeira linha. Estou apenas perdendo o que posso fazer para enviar o email em HTML. Algumas das fontes que encontrei dizem que o mailx e o postfix não podem enviar e-mails HTML adequadamente. Espero que não seja esse o caso, mas se é do que eu gostaria de saber o que você acha de outras tecnologias MAU e MTA?

    
por AndyV 17.02.2016 / 22:58

2 respostas

0

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/sendmail diretamente.

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

Isso exigiria que você adicionasse todos os cabeçalhos importantes ( From , To , Subject e 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 obrigatórios, como Date .

    
por 18.02.2016 / 09:41
1

Você até leu o manual para mailx , especialmente a opção -a ?

-a file Attach the given file to the message.

De Gilles responde , pois o CentOS está usando esta versão de mailx :

With the Heirloom mailx, there's no convenient way. One possibility to insert arbitrary headers is to set editheaders=1 and use an external editor (which can be a 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.

    
por 17.02.2016 / 23:15