Envie algum texto para o correio do UNIX, de modo que o texto apareça em alguma cor no corpo do correio

4

Eu tenho algum texto em um arquivo no UNIX. Eu envio esse arquivo para o meu email usando o comando mail . O que eu quero é que o texto seja exibido em alguma cor no corpo do e-mail. O email será aberto no Windows. Qualquer ajuda seria muito apreciada.

    
por learner1 09.03.2016 / 06:11

2 respostas

14

Você precisaria converter o conteúdo em HTML e garantir que o cabeçalho do e-mail incluísse

Content-Type: text/html; charset=UTF-8

Como você faria isso dependeria de qual programa seu comando "mail" é, e na verdade pode não ser possível. Você poderia modificar o script para injetar o email no sendmail ou similar em vez disso por algo como

echo 'Content-Type: text/html; charset=UTF-8
Subject: My Subject

<html>
<b>Email Header</b>
<br /><br />
<font color="red">This text is red</font>
</html>' | sendmail [email protected]

Note que esta é uma implementação um pouco bruta e pode ser mais provável que seja descartada por filtros de spam, a menos que seja ajustada.

    
por 09.03.2016 / 08:22
7

Mais algumas informações sobre a boa resposta da davidgo:

O padrão de e-mail não começou com suporte a cor ou fonte. Assim, não há garantia de que o destinatário possa ver qualquer cor, não importa o quanto você tente.

A maioria dos clientes, no entanto, faz o e-mail interpretado um pouco mais amplo e, se você envia um texto rico ou uma página da Web, ele pode renderizar em cores. Alternativamente, se você realmente precisar de uma marcação específica, será necessário enviá-la como uma figura (com todas as desvantagens, como por não poder selecionar texto ou editar).

O correio básico de uma plataforma semelhante ao Unix pode ser enviado da seguinte forma:

sendmail [email protected] < myfile

Ou, se você gosta de gato ou começa com um cachimbo:

cat myfile | sendmail [email protected]

Ou, a partir do eco via shell:

echo 'content here' | sendmail [email protected]

Todos eles enviarão o conteúdo do myfile, sem assunto, sem cor, sem marcação de texto. Apenas um simples correio simples. É uma boa maneira de começar a entender o básico.


Agora, para David responder, ele adiciona uma linha que informa ao mailclient para tratar o texto como HTML ('Content-Type: text / html). A maioria dos clientes de e-mail vai reconhecer isso com alegria. Alguns (como o elm, que eu ainda uso para ler e-mails suspeitos) não vão.

Ele também adiciona um assunto bastante amigável.

E, finalmente, ele usa marcação HTML (comece com <HTML> e com </HTML> , tags negrito e configuração de fonte para definir uma cor. Nesse caso, vermelho, mas você pode especificar qualquer cor com "color=" FF0000 "format (em RGB, neste caso, no máximo vermelho, sem verde, sem azul).

Se você tiver a necessidade de um e-mail variável mais complexo, um script de shell pode anexar partes a um arquivo e você pode usar o primeiro método (usuário do sendmail < input) para enviar o arquivo final.


The mail will be opened from Windows.

O cliente de email é importante aqui. Eu espero que o thunderbird renderize isso bem no windows, bem no linux ou no BSD. Semelhante eu espero que o mutt falhe, tanto no Windows quanto no BSD. Desagrupar uma correspondência multiparte com uma alternativa em texto pode ser uma boa ideia. Para isso, veja RFC1341 .

    
por 09.03.2016 / 08:49