
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/sendmail
diretamente.
/usr/sbin/sendmail -t < complete-mail.txt
Isso exigiria que você mesmo 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 necessários, como Date
.
Responder2
Você ao menos leu o manual domailx
, especialmente a -a
opçã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.