Extrair / salvar um anexo de email usando o bash


30

Usando bashferramentas normais (ou seja, ferramentas de linha de comando internas ou comumente disponíveis), é

  • possível e
  • quão

extrair / salvar anexos em e-mails?

Por exemplo, digamos que tenho um relatório noturno que chega por email, mas é um arquivo zip de vários arquivos de log. Eu quero salvar todos esses zips em um diretório de backup. Como eu conseguiria isso?


"ferramentas normais do bash" - você quer dizer usar apenas as funções incorporadas ao bash (ou seja, o que você encontrará na página do manual do bash) ou, de maneira mais geral, ferramentas de linha de comando que você pode adicionar a um script do shell do bash ?
— Doug Harris

@Doug Harris - quer .. se eu posso chamar maile fazer isso, ou salvar o elsewise anexo, tudo bem também :)
— Warren

Respostas:


29

Se você está buscando portabilidade, tenha cuidado com a existência de várias versões diferentes de mail(1)e mailx(1). Há um mailxcomando POSIX , mas com muito poucos requisitos. E nenhuma das implementações que pareço analisar anexos de qualquer maneira.

Você pode ter o pacote mpack . Seu munpackcomando salva todas as partes de uma mensagem MIME em arquivos separados; tudo o que você precisa fazer é salvar as partes interessantes e limpar o restante.

Há também metamail . Um equivalente de munpacké metamail -wy.


Adicione também que, se você também deseja extrair as partes MIME do texto do email ao usar munpack, use a opção '-t':munpack -t email_file
— Pierz

Obrigado pela informação sobre metamail. Você pode me ajudar com esta pergunta ?
— george


2
  • SIM possível

  • Isto é COMO (Recurso aqui )

encontre dir contendo arquivos | enquanto lê o arquivo; Faz

crie tempdir e copie o arquivo lá

executar munpack em arquivo e copiar anexos em outro lugar

destruir tempdir (conteúdo)

feito


Se alguém quiser me para colar o script Perl aqui, então basta deixar um comentário
— subanki

1
se você seria tão amável (obviamente deixando atribuição de onde você o encontrou :))
— Warren

1
basta ler o script ... isso é um monte de perl!
— warren

então você tem certeza de que deseja que eu inclua isso na minha resposta, isso será muito longo.
— Subanki

não colar aqui, copiar da fonte original seria melhor neste caso :)
— Warren
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.