Extraer / guardar un archivo adjunto de correo usando bash

30

Usar bashherramientas normales (es decir, herramientas integradas o herramientas de línea de comandos comúnmente disponibles), ¿es

  • posible, y
  • cómo

extraer / guardar archivos adjuntos en correos electrónicos?

Por ejemplo, supongamos que tengo un informe nocturno que llega por correo electrónico pero es un archivo zip de varios archivos de registro. Quiero guardar todas esas cremalleras en un directorio de respaldo. ¿Cómo lograría eso?

madriguera
fuente
"herramientas bash normales": ¿quiere decir que usa solo las funciones integradas en bash (es decir, lo que encontrará en la página de manual de bash) o quiere decir, en general, herramientas de línea de comandos que podría agregar a un script de shell bash ?
Doug Harris
@Doug Harris, ya sea ... si puedo llamar maily hacer esto, o guardar el archivo adjunto de otra manera, también está bien :)
warren

Respuestas:

29

Si busca la portabilidad, tenga en cuenta que hay varias versiones diferentes de mail(1)y mailx(1). Hay un mailxcomando POSIX , pero con muy pocos requisitos. Y ninguna de las implementaciones que tengo parece analizar los archivos adjuntos de todos modos.

Es posible que tenga el paquete mpack . Su munpackcomando guarda todas las partes de un mensaje MIME en archivos separados, luego todo lo que tiene que hacer es guardar las partes interesantes y limpiar el resto.

También hay metamail . Un equivalente de munpackes metamail -wy.

Gilles 'SO- deja de ser malvado'
fuente
También para agregar que si también desea extraer el texto MIME partes del correo electrónico cuando lo use munpack, use la opción '-t':munpack -t email_file
Pierz
Gracias por la información sobre metamail. ¿Me pueden ayudar con esta pregunta ?
George
13

El mejor programa para este propósito es ripMIME.

Extrae el texto y todos los archivos adjuntos:

https://pldaniels.com/ripmime/

GitHub: inflex / ripMIME

Andreas Rehm
fuente
44
sudo apt install ripmime funciona sin embargo. Ver también linux.die.net/man/1/ripmime . Yo uso este programa; funciona muy bien, sin dependencias excepto libc6.
Martillo
cosas buenas, metamail y munpack no están disponibles en Ubuntu pero ripmime es y hace exactamente lo que esperaba.
Diego
2
  • posible

  • Esto es CÓMO (Recurso de aquí )

encontrar directorio que contiene archivos | mientras lee el archivo; hacer

crear tempdir y copiar el archivo allí

ejecutar munpack en archivo y copiar archivos adjuntos en otro lugar

destruir tempdir (contenido)

hecho

subanki
fuente
Si alguien quiere que pegue el script de Perl aquí, simplemente deje un comentario
subanki el
1
si fuera tan amable (obviamente dejando la atribución de dónde lo encontró :))
warren
1
Acabo de leer el guión ... ¡eso es un montón de perl!
warren
así que estás seguro de que quieres que incluya eso en mi respuesta, será muy largo.
subanki
no pegue aquí, copiar de la fuente original sería mejor en este caso :)
warren