web-dev-qa-db-fra.com

Comment puis-je télécharger des pièces jointes à partir d'e-mails via terminal en utilisant getmail?

Je sais que je peux télécharger des emails en utilisant un client, mais existe-t-il un moyen de télécharger des emails directement à partir du terminal? J'essaie d'extraire des courriels de mon compte Gmail pour analyser plus tard certains courriels.

EDIT: Merci pour toutes les réponses. À l'heure actuelle, j'ai trouvé un moyen de le faire avec getmail. Mais j'ai rencontré un petit problème. Il télécharge les courriels et les pièces jointes, mais il imprime tout dans le texte. Existe-t-il un moyen de récupérer ladite pièce jointe?

6
Shelby. S

Gmail fournit un service IMAP via lequel vous pouvez utiliser n'importe quel client prenant en charge ce protocole pour récupérer vos courriers électroniques. La manière dont ce client les rend disponibles sur le disque peut varier.

Le client IMAP en ligne de commande le plus largement utilisé doit être fetchmail. Vous pouvez l'installer facilement dans Ubuntu, puis sur Google pour des configurations spécifiques à utiliser avec gmail.

Une des choses avec fetchmail est qu’il récupère les courriels du serveur distant puis les redirige vers votre MTA local. Il vous faut donc un MTA configuré localement pour que cette configuration fonctionne. Le MTA ajouterait probablement les e-mails à/var/mail/$ USER et vous pourrez alors lire ce fichier pour effectuer votre traitement.

Un autre outil qui peut fonctionner est offlineimap. Je ne l'ai pas utilisé; la configuration peut être plus facile qu'avec fetchmail.

Pour ce qui est de la nécessité de sauvegarder les pièces jointes incluses dans les courriels, il vous faut installer mpack. Ensuite, exécutez la commande munpack sur le fichier .txt pour chaque email (oui, celui qui contient tout le charabia des pièces jointes). Il décodera et sauvegardera les pièces jointes dans des fichiers individuels:

$ munpack mail.txt 
Invoice.PDF (application/pdf)
my-picture.png (image/png)
5
roadmr

(La question concernait l'accès général au courrier électronique via le terminal, avant que la question ne spécifie getmail, mais les pièces jointes sont facilement enregistrées dans Mutt également: voir ma note ci-dessous)

Vous pouvez utiliser le programme Mutt, disponible dans les référentiels. J'ai trouvé que Mutt est hautement configurable et assez simple une fois que vous vous y êtes habitué. Les instructions suivantes font référence à la configuration de gmail à l'aide des protocoles imap et smtp (assurez-vous que imap est activé dans les paramètres de votre compte gmail.).

Cela prend un peu de temps à installer, mais voici en gros le moyen le plus rapide de le faire:

  • Créez un répertoire appelé .mutt et créez-en un autre appelé cache
  • Créez ensuite un fichier nommé .muttrc pour stocker vos paramètres, bien que cela ne soit pas placé dans le dossier .mutt, mais uniquement dans votre dossier personnel. Ensuite, entrez les paramètres suivants ici; pour le mot de passe, je l’ai laissé "" pour que le système vous y invite, ce n’est pas une bonne idée de placer votre mot de passe dans un fichier texte tel que .muttrc. (Remarque: ces paramètres sont basés sur le format Linux. article sur Mutt, LXF134, août 2010, p. 96-97.)

    set from = "[email protected]"
    set realname = "Your Name"
    set imap_user = "[email protected]"
    set imap_pass = ""
    set folder = "imaps://imap.gmail.com:993"
    set spoolfile = "+INBOX"
    set postponed = "+[Gmail]/Drafts"
    set trash = "imaps://imap.gmail.com/[Gmail]/Trash"
    set header_cache=~/.mutt/cache/headers
    set message_cachedir=~/.mutt/cache/bodies
    set smtp_url = "smtp://[email protected]:587/"
    set smtp_pass = ""
    set move = no
    set imap_keepalive = 900
    set sort=threads
    set sort_aux=date
    

Maintenant que vos paramètres sont enregistrés dans .muttrc, il vous suffit de taper mutt dans le terminal et de saisir votre mot de passe lorsque vous y êtes invité. J'ai testé ces paramètres et ils fonctionnent bien; cherchez plus de paramètres pour personnaliser votre expérience Mutt, car des macros peuvent être utilisées avec le programme pour lui donner des fonctionnalités supplémentaires. Voir le manuel de Mutt pour cela et plus, qui est également installé lorsque vous obtenez le programme.

Pour ouvrir les pièces jointes , sélectionnez le message avec la pièce jointe, press v, sélectionnez la pièce jointe et appuyez sur enter pour l'afficher dans votre application par défaut. Pour enregistrer la pièce jointe à la place, press s pour enregistrer et entrer un nom de fichier et un emplacement, puis appuyez sur enter.

Here's a screenshot of Mutt

1
user76204

Vous pouvez utiliser OfflineIMAP.

OfflineIMAP fonctionne généralement en maintenant une hiérarchie de dossiers de courrier au format Maildir localement. Votre propre lecteur de courrier lira le courrier de cet arbre et n’aura jamais besoin de savoir que le courrier provient d’IMAP. OfflineIMAP détectera les modifications apportées aux dossiers de messagerie de votre serveur IMAP et de votre propre ordinateur et les synchronisera de manière bidirectionnelle, copiant, marquant et supprimant les messages si nécessaire.

Il se trouve dans le référentiel de l'univers. Vous devrez donc peut-être d'abord l'activer, puis installer:

offlineimap

0
ImaginaryRobots