Consultation serveur imap en ligne de commande, simple question

Résolu/Fermé
gnugo - Modifié par gnugo le 3/08/2016 à 18:52
 gnugo - 4 août 2016 à 16:31
Bonjour,

Je me demandais si vous connaissiez des utilitaires ou une façon de faire pour aller consulter une boite mail IMAP en ligne de commande.

Par exemple simplement récupérer le nombre de mails non lus, et le nombre total de mails
Ou encore faire une recherche dans tous les mails de manière simple comme on ferait un grep...
Le protocole imap me semble assez compliqué à scripter pour automatiser ces actions pourtant simples. Avez-vous une idée de comment faire cela ?

Genre pour donner un exemple concret : un script qui prend en paramètre un host, un port, un login, un mdp et qui affiche la liste des mails noms lus sur l'entrée standard

(je donne cet exemple exprès pour bien faire comprendre que je souhaite interroger n'importe quel serveur et non pas installer un utilitaire qui demande de configurer un compte etc... mais juste de l'interrogation vite fait à la volée indépendamment du compte et du serveur de mail à consulter)


Merci si vous pouvez m'apporter votre aide :)


A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
3 août 2016 à 21:20
Salut,

Voir du côté de mutt ou peut-pêtre tout simplement via telnet.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 août 2016 à 07:44
0
Merci pour vos réponses
.
J'ai creusé comment faire avec ces 2 outils mais ce n'est vraiment pas adapté à ce que je souhaite faire : ce sont des client mail à part entière (un peu comme thunderbird) à utiliser pour gérer totalement un compte mail sur une machine (lire, stocker, récupérer) en fonction de compte et de paramètres écrits dans des fichiers en dur.
.
Je cherche uniquement à récupérer des infos à la va-vite via un script.

Ce serait possible en telnet, mais imap m'a l'air vraiment compliqué pour faire cela, bien plus que de faire du telnet http ou ftp.
.
À titre de comparaison, je cherche à faire comme un curl sur des serveurs mail pour l'utiliser facilement dans un script. Donner les paramètres nécessaires en argument afin d'éviter du telnet brut.
.
Pas possible avec des outils du genre mutt/fetchmail il me semble ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 août 2016 à 15:13
Parfois il suffit de creuser un peu : Performing IMAP queries via curl
0
Je viens de voir en même temps que toi justement en cherchant comment faire de l'imap comme un curl suite à ma réponse.
J'avais pas mal cherché mais je ne suis jamais tombé dessus, sauf en utilisant les mots clés curl et imap en même temps !
.
Ma version de curl ne me permet pas de faire cela, je vais voir ce qu'il faut que j'installe en plus, en tout cas ça semble répondre parfaitement à mon besoin. J'en aurais bavé sinon d'attaquer le imap directement en telnet.


Merci
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > gnugo
4 août 2016 à 15:29
Je viens de tester chez moi sur 2 comptes différents et ça le fait bien, même la lecture d'un mail ;-))

$ curl --insecure --url 'imaps://imap.free.fr/INBOX;UID=5' --user 'toto:titi'
Return-Path: <moi@free.fr>
Delivered-To: lui@free.fr
Received: from smtp4-g21.free.fr (mx27-g26.priv.proxad.net [172.20.243.97])
by toaster2-g26.priv.proxad.net (Postfix) with ESMTP id F0E6DA00F39
for <lui@free.fr>; Thu, 4 Aug 2016 15:20:39 +0200 (CEST)
Received: from smtp4-g21.free.fr ([212.27.42.4])
by mx1-g20.free.fr (MXproxy) with ESMTPS for lui@free.fr
(version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256);
Thu, 4 Aug 2016 15:20:39 +0200 (CEST)
X-ProXaD-SC: state=HAM score=0
X-ProXaD-Cause: (null)
Received: from [192.168.10.58] (unknown [82.xxx.xxx.xxx])
by smtp4-g21.free.fr (Postfix) with ESMTP id D79FC19F5B4
for <lui@free.fr>; Thu, 4 Aug 2016 15:23:41 +0200 (CEST)
To: lui@free.fr
From: toto <moi@free.fr>
Subject: test2
Message-ID: <2976ff91-62d9-acd1-1748-d9b489134793@free.fr>
Disposition-Notification-To: toto <moi@free.fr>
Date: Thu, 4 Aug 2016 15:20:40 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 7bit

Another test


Sinon, pour
telnet
, le plus chiant pour scripter le tout c'est qu'il faut passer par
expect
, qui est assez imbuvable niveau syntaxe ;-(
0
Ça marche pour moi aussi, j'ai dû récupérer la dernière version sur le site officiel et compiler/installer car on est encore en 7.19 max sur centos...


Oui telnet pour de l'http voire même du ftp ça va, mais IMAP j'en ai fait un peu en ligne de commande et j'imaginais mal comment scripter ça.
Là curl récupère simplement les infos sans que j'aie à gérer le dialogue pur avec imap, c'est tout ce que je demandais !

Je suis étonné qu'il ne semble pas y avoir d'autre outil, j'ai peut-être mal cherché, ou alors ça doit exister en perl mais je n'avais pas trop envie de passer par là
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > gnugo
4 août 2016 à 15:52
Sur le lien donné plus haut, on trouve aussi ça… à explorer ;-)

Sinon,
curl
accepte l'utilisation d'un fichier
.netrc
avec l'option
-n
ce qui est mieux que de voir son login/mot_de_passe en clair dans les commandes ;-\
0