Extraire / enregistrer une pièce jointe à l'aide de bash

30

Utiliser des bashoutils normaux (c.-à-d. Des outils intégrés ou des outils de ligne de commande couramment

  • possible, et
  • Comment

extraire / enregistrer des pièces jointes sur les e-mails?

Par exemple, disons que j'ai un rapport nocturne qui arrive par e-mail mais qui est une archive zip de plusieurs fichiers journaux. Je veux enregistrer tous ces zips dans un répertoire de sauvegarde. Comment pourrais-je accomplir cela?

garenne
la source
"outils bash normaux" - voulez-vous dire utiliser uniquement les fonctions intégrées à bash (c'est-à-dire ce que vous trouverez dans la page de manuel bash) ou voulez-vous dire, plus généralement, des outils de ligne de commande que vous pourriez ajouter à un script shell bash ?
Doug Harris
@Doug Harris - soit .. si je peux appeler mailet faire cela, ou enregistrer la pièce jointe autrement, ça va aussi :)
warren

Réponses:

29

Si vous visez la portabilité, sachez qu'il existe plusieurs versions différentes de mail(1)et mailx(1). Il existe une mailxcommande POSIX , mais avec très peu d'exigences. Et aucune des implémentations que j'ai semble analyser de toute façon les pièces jointes.

Vous pourriez avoir le paquet mpack . Sa munpackcommande enregistre toutes les parties d'un message MIME dans des fichiers séparés, puis tout ce que vous avez à faire est de sauvegarder les parties intéressantes et de nettoyer le reste.

Il y a aussi la métamail . Un équivalent de munpackis metamail -wy.

Gilles 'SO- arrête d'être méchant'
la source
Pour ajouter également que si vous souhaitez également extraire le texte des parties MIME de l'e-mail lors de l'utilisation, munpackutilisez l'option '-t':munpack -t email_file
Pierz
Merci pour l'info metamail. Pouvez-vous m'aider à répondre à cette question ?
George
13

Le meilleur programme à cet effet est ripMIME.

Il extrait le texte et toutes les pièces jointes:

https://pldaniels.com/ripmime/

GitHub: inflex / ripMIME

Andreas Rehm
la source
4
sudo apt install ripmime fonctionne bien. Voir aussi linux.die.net/man/1/ripmime . J'utilise ce programme; fonctionne très bien, pas de dépendances sauf libc6.
unhammer
bonnes choses, metamail et munpack ne sont pas disponibles sur Ubuntu mais ripmime est et fait exactement ce que l'on attendait.
Diego
2
  • OUI possible

  • Voici COMMENT (Ressource d' ici )

trouver des fichiers contenant dir | pendant la lecture du fichier; faire

créer tempdir et y copier le fichier

exécuter munpack sur un fichier et copier les pièces jointes ailleurs

détruire tempdir (contenu)

terminé

subanki
la source
Si quelqu'un veut que je colle le script Perl ici, il suffit de laisser un commentaire
subanki
1
si vous seriez si gentil (laissant évidemment l'attribution de l'endroit où vous l'avez trouvé :))
warren
1
il suffit de lire le script ... c'est beaucoup de perl!
warren
vous êtes donc sûr de vouloir que j'inclue cela dans ma réponse, cela deviendra très long.
subanki
ne collez pas ici, la copie à partir de la source d'origine serait mieux dans ce cas :)
warren