Criando um e-mail com várias partes e enviando-o no Linux

9

Usamos o mutt para enviar e-mails.

mutt -s "Test" -e "Content-Type: text/html" [email protected] < message.html

Enviamos nossas atualizações por e-mail no formato HTML. Gostaríamos de enviar e-mails como multi-partes contendo uma versão em texto e uma versão html.

  1. Como criamos uma mensagem multipartes no Linux quando o assunto do email e as versões em HTML e texto do corpo do email são fornecidos?
  2. Podemos usar o mutt para enviar o email multipartes criado na etapa 1, a partir do prompt do Linux?

Ambiente: RedHat Enterprise Linux 5, mutt

    
por user544192 21.05.2011 / 13:15

2 respostas

9

How do we create such a multipart message in Linux when the email subject, and HTML and text versions of the email body are given?

Crie uma mensagem do tipo multipart/alternative conforme documentado na RFC 2046 :

From: Example Company <[email protected]>
To: Joe User <[email protected]>
Date: Sat, 21 May 2011 17:40:11 +0300
Subject: Multipart message example
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=asdfghjkl

--asdfghjkl
Content-Type: text/plain; charset=utf-8

Hello everyone!

--asdfghjkl
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<body>
<p>Hello everyone!</p>
</body>

--asdfghjkl--

Veja RFC 2046 e RFC 5322 para a sintaxe exata.

Can we use mutt to send the multipart email created in step 1, from the linux prompt?

Se você encontrar uma maneira de definir o cabeçalho Content-Type correto. (No seu exemplo, você está usando -e , mas o mutt usa -e para fins diferentes. Mesmo -e "my_hdr Content-Type: ..." deixa o texto original / cabeçalho simples intacto.)

É melhor enviar e-mails gerados diretamente por meio de sendmail . Você terá que criar os cabeçalhos você mesmo - veja o exemplo; use strftime("%a, %d %b %Y %T %z") para Date e uma string de caracteres alfanuméricos aleatórios para o limite. Em seguida, envie a mensagem preparada, incluindo cabeçalhos, para sendmail -i -t :

sendmail -i -t < above-example.txt

(A opção -t significa "obter destinatários da linha Para: "; você também pode usar sendmail -i [email protected] )

    
por 21.05.2011 / 16:46
0

Dê uma olhada no link . Eu desenvolvi este pequeno utilitário / biblioteca Python, já que usar linhas de comando para e-mails grandes não parece ser uma opção confiável. Com o mailprodcli, é tão simples quanto dizer mailprodcli template.xml --send . Exemplo de template.xml que inclui até mesmo uma imagem é tão simples quanto:

<?xml version="1.0" encoding="UTF-8"?>
<mail>
  <from>[email protected]</from>
  <to>[email protected]</to>
  <to>[email protected]</to>
  <body type="text/html">
    <![CDATA[<html>
<b>Neat!</b><br><center><img src="cid:sample"></center>
</html>]]>
  </body>
  <body type="image" src="sample.png" id="sample" />
</mail>
    
por 07.10.2016 / 06:14