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.