Como enviar uma mensagem de correio não processada no Linux?

4

Se eu tiver o conteúdo completo de uma mensagem MIME, qual é o melhor utilitário no Linux para enviar a mensagem? A mensagem MIME incluiria os cabeçalhos completos e o corpo do email, por exemplo:

Received: (qmail 32389 invoked by uid 0); 13 Jun 2017 09:24:51 -0400
Date: Tue, 13 Jun 2017 09:24:51 -0400
From: [email protected]
To: [email protected]
Subject: Test Email
Message-ID: <593fe7a3.IgSR+/BLy+NYXlVZ%[email protected]>
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

The mail body goes here

Eu quero ser capaz de alimentar o acima para um utilitário de linha de comando que irá reprocessar a mensagem exatamente como está sem ter que analisar campos como remetente, assunto, etc. Ele deve enviar a mensagem através de um servidor SMTP externo especificado (não a fila de correio do servidor local).

Qual utilitário de linha de comando posso usar para essa finalidade?

    
por Chris 31.07.2017 / 18:36

3 respostas

3

Você pode usar sendmail ou "sendmail idêntico" fornecido por postfix / exim / ....

/usr/sbin/sendmail -i -- $recipients < message_file

-i - não trata linhas com pontos principais especialmente

Você pode usar mais "sendmail look" exótico (por exemplo, fornecido por msmtp ) para enviar via outro host smtp sem configuração "ampla do sistema". msmtp é distribuído no debian então é provável que seja incluído em outras distribuições linux.

link

Package: msmtp (1.6.6-1)
light SMTP client with support for server profiles

msmtp is an SMTP client that can be used to send mails from Mutt and probably other MUAs (mail user agents). It forwards mails to an SMTP server (for example at a free mail provider), which takes care of the final delivery. Using profiles, it can be easily configured to use different SMTP servers with different configurations, which makes it ideal for mobile clients.

    
por 31.07.2017 / 19:10
1

Infelizmente, sendmail e mailx não permitem que você especifique um servidor SMTP diferente. Mas você poderia combinar a resposta de Andrzej com ssh. Embora eu use a opção -t para ler os destinatários do arquivo / dados que estão sendo lidos.

cat <messagefile> | ssh user@mailhost /usr/sbin/sendmail -i -t

<messagefile> é um arquivo que contém a mensagem MIME e o mailhost é o servidor SMTP. user é um ID de login no servidor SMTP.

    
por 31.07.2017 / 23:57
0

s-nail é uma alternativa bastante aprimorada para mailx que, entre muitas outras melhorias, permite que você especifique um servidor SMTP na linha de comando.

por exemplo,

s-nail -S "smtp=smtp://remote-server:port" < message.txt

Até suporta SMTP criptografado (usando STARTTLS, SMTPS ou SUBMISSION) e SMTP AUTH. Veja man s-nail para detalhes.

s-nail está disponível pré-empacotado para várias distribuições de Linux (por exemplo, em debian apt-get install s-nail .

    
por 01.08.2017 / 06:59