mail -s "subject" [email protected] <test.html
funciona, mas apenas para email em texto sem formatação.
Qual é a maneira correta de enviar email em HTML usando o comando Linux mail
?
fonte
mail -s "subject" [email protected] <test.html
funciona, mas apenas para email em texto sem formatação.
Qual é a maneira correta de enviar email em HTML usando o comando Linux mail
?
Existem muitas versões diferentes de mail
ao redor. Quando você vai além mail -s subject to1@address1 to2@address2 <body
(para o envio, são todas as garantias POSIX - e até -s
não existiam antigamente ), elas tendem a ter diferentes opções de linha de comando. Adicionar um cabeçalho adicional nem sempre é fácil.
Com algumas mailx
implementações, por exemplo, a partir mailutils
de Ubuntu ou Debian debsd-mailx
, é fácil, porque não há uma opção para isso.
mailx -a 'Content-Type: text/html' -s "Subject" to@address <test.html
Com o Heirloom mailx
, 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"
Com um POSIXmailx
geral , não sei como chegar aos cabeçalhos.
Se você vai usar algum mail
ou mailx
, lembre-se de que
mail
e mailx
.mail
e mailx
trata linhas começando com ~
como comandos. Se você inserir texto no texto mail
, será necessário organizar esse texto para não conter linhas começando por ~
.Se você deseja instalar o software de qualquer maneira, é melhor instalar algo mais previsível que mail
/ Mail
/ mailx
. Por exemplo, vira-lata . Com o Mutt, você pode fornecer a maioria dos cabeçalhos da entrada com a -H
opção, mas nãoContent-Type
, que precisa ser definida através de uma opção mutt.
mutt -e 'set content_type=text/html' -s 'hello' 'to@address' <test.html
Ou você pode invocar sendmail
diretamente. Existem várias versões sendmail
disponíveis, mas todas suportam o sendmail -t
envio de um email da maneira mais simples, lendo a lista de destinatários do email. (Eu acho que eles não suportam todos Bcc:
.) Na maioria dos sistemas, sendmail
não está no habitual $PATH
, está em /usr/sbin
ou /usr/lib
.
cat <<'EOF' - test.html | /usr/sbin/sendmail -t
To: to@address
Subject: hello
Content-Type: text/html
EOF
fonte
mail
.Com o Heirloom mailx, é conveniente
Obrigado, Cara
Testado no Fedora 17, e trabalhou
fonte
Você precisará adicionar um
Content-Type
cabeçalho ao seu e-mail para que isso aconteça.vai funcionar
fonte
mailx
? Isso pode ter a opção. Se isso não funcionar. Se isso não funcionar, você pode considerar o uso de mutt, embora eu não saiba de imediato o que a linha de comando alterna para fazer.Com o heirloom-mailx, você pode alterar o programa sendmail para o seu script de gancho, substituir os cabeçalhos e usar o sendmail.
O script que eu uso (
~/bin/sendmail-mailx-hook
):Este script altera os valores no cabeçalho do email da seguinte maneira:
Content-Type:
paratext/html; charset=utf-8
Content-Transfer-Encoding:
para8bit
(não tenho certeza se isso é realmente necessário).Para enviar email em HTML:
Esse método é mais eficaz do que o proposto pelo @Gilles porque não cria arquivos temporários e apenas corrige o fluxo on-the-fly.
fonte
Eu usei os scripts abaixo para acontecer
fonte
Para mim, eu precisava especificar uma variável, como servidor SMTP, para que o comando mail funcionasse da maneira abaixo. Eu procurei em muitos posts, e encontrei abaixo a propriedade para converter o corpo em texto / html. Agora, o email que recebo está no formato HTML.
Versão Unix: Servidor Red Hat Enterprise Linux versão 6.6 (Santiago)
Primeiro. Crie todas as informações necessárias em um script (testSql.sh)
Segundo. Canalize esse script para o comando mail
Ao fazer isso, obtenho informações como abaixo no e-mail:
Valor1 e Valor2 conforme a marcação HTML feita no testSql.sh
fonte
fonte