Encaminhar um email da linha de comando no Linux

5

Eu tenho arquivos de e-mail no meu Maildir recebidos com o servidor postfix (Ubuntu). Existe um utilitário que pode encaminhar um arquivo de email selecionado para o endereço de email especificado? Algo como:

cat emailfile | utility [email protected]

Eu tentei usar o comando mail , mas ele enviou todo o conteúdo do arquivo, incluindo todas as informações técnicas do cabeçalho, como um texto simples, que não parece legal.

cat emailfile | mail -s subject [email protected]

Atualizar

Desculpe por não ser específico. O que eu queria é encaminhar um arquivo de e-mail de um script de shell, sem anexos, mas removendo todo o cabeçalho e metadados e apresentando-o de maneira amigável. Como no gmail, quando você clica em "encaminhar", ele analisa automaticamente o e-mail, adiciona o texto "encaminhado" na parte superior e coloca a mensagem de texto do corpo. Eu sei que posso analisar o arquivo de e-mail e construir um novo e-mail, mas achei que havia um utilitário que poderia me salvar algumas horas.

    
por Evgenii 16.08.2011 / 19:30

2 respostas

4

Existem mais possibilidades do que uma.

  1. Esse utilitário é chamado de sendmail. %código%. Talvez você tenha que reescrever o e-mail antes, já que isso não "encaminha" o e-mail, mas "envia" o e-mail.
  2. Faça isso no próprio Postfix. Você pode usar as muitas possibilidades já presentes no Postfix para enviar um e-mail para o usuário local e, adicionalmente, para outras pessoas (local e / ou remoto). Dica: cat emailfile | sendmail -f [email protected]
por 16.08.2011 / 19:53
2

mail [email protected] < mailfile torna o corpo do email o conteúdo do arquivo. Se isso não está funcionando para você, então talvez você tenha que escrever o seu próprio.

Isso é retirado da documentação da biblioteca do Python 2.7 :

# Import smtplib for the actual sending function
import smtplib

# Here are the email package modules we'll need
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart

COMMASPACE = ', '

# Create the container (outer) email message.
msg = MIMEMultipart()
msg['Subject'] = 'Our family reunion'
# me == the sender's email address
# family = the list of all recipients' email addresses
msg['From'] = me
msg['To'] = COMMASPACE.join(family)
msg.preamble = 'Our family reunion'

# Assume we know that the image files are all in PNG format
for file in pngfiles:
    # Open the files in binary mode.  Let the MIMEImage class automatically
    # guess the specific image type.
    fp = open(file, 'rb')
    img = MIMEImage(fp.read())
    fp.close()
    msg.attach(img)

# Send the email via our own SMTP server.
s = smtplib.SMTP('localhost')
s.sendmail(me, family, msg.as_string())
s.quit()

A única mudança real aqui é que você usaria a classe email.mime.image.MIMEApplication em vez de MIMEImage ... e, claro, alteraria os campos para, de e assunto para algo apropriado.

    
por 16.08.2011 / 21:52