Page 1 sur 1
[script] extraire From, Subject et message d'un mail.
Publié : mar. 11 mars 2008, 18:24
par cassyb
salut,
J'aimerais bien récupérer le From:, Subject: et le message d'un fichier de mail
genre:
From - Tue Mar 11 17:57:28 2008
...
From: "NOM Prenom" <
son_adresse@webmail.fr>
...
Subject: Salut!
Content-Type: text/html; charset=iso-8859-1; format=flowed
X-OriginalArrivalTime: 08 Jul 2007 19:51:53.0137 (UTC) FILETIME=[6E7FBA10:01C7C199]
ok ce message n'est pas en html
...
From - Tue Mar 11 17:58:04 2007
Ce que je n'arrive pas:
1.
récupérer
NOM-prenom@mail.fr dans:
From: NOM Prenom <
NOM-prenom@mail.fr>
2.
Détecter la fin du header pour récupérer le corp du message.
vous pouvez me dire comment faire?
merci.
Publié : mar. 11 mars 2008, 18:34
par vincentxavier
Publié : mar. 11 mars 2008, 20:06
par cassyb
ok mais j'aimerais avoir un resultat:
adresse email
sujet
message
actuellement je fais comme ça:
grep -e From: -e Subject: -e \n\n fichier_mails
( \n\n représentant la fin des headers)
je peux récupérer l'adresse email en faisant un pipe:
| grep -o "[[:alnum:]]*@[[:alnum:]]*.[[:alnum:]]*"
Le problème c'est que des fois j'ai des:
zCqSnilhUS1U8X3cMU4qKebzGCNvAF/zUcTqxDBWsAR7u+72tyPDhaVFoDwqK8CCDwCnBOmnnwPW
0ZlmlNJ4IgBoETEOLlfYlu4FegjVUhRKMPNq1BAAbyrUn4hinn1azncyMdRLGijGRUVFKEeVaevn
1AAFfnnPkctjNBQEf9ld97U3Fs2HJ7lrtsQ0CRRUsmM3CtPichHHrmlgxVdja2nlNTJQtLZKqCLx
que je n'arrive pas à filtrer avec
grep -v base64
(cf: Content-transfer-encoding)
y'aurait pas un paquet qui permettrait de récupérer directement ces champs?
Sur le net, ils parlent mimedump mais pas moyen de trouver un exemple.
Publié : mar. 11 mars 2008, 20:46
par Tebo
Code : Tout sélectionner
alias fetchmail='echo "" > /home/jul/mail/.procmail.log; fetchmail; tail -100 $HOME/mail/.procmail.log |grep Subject'
bon bon
[]
Publié : mar. 11 mars 2008, 20:55
par tuxce
tu peux peut etre utiliser procmail
Publié : mar. 11 mars 2008, 23:48
par cassyb
@Tebo: ??.!§&"???
@tuxce:
Je ne vois pas avec procmail comment je pourrais faire ce que je veux faire.
Je ne cherche pas à filtrer des mails je veux juste récupérer certains champs des mails à partir d'un fichier à donner en paramètre.
Publié : mer. 12 mars 2008, 01:45
par tuxce
en fait, c'est avec le programme qui vient avec procmail: formail
par exemple avec un script de ce genre:
Code : Tout sélectionner
#!/bin/sh
cat > /tmp/$$
mail_de=$(cat /tmp/$$ | formail -x "From:" )
mail_sujet=$(cat /tmp/$$ | formail -x Subject )
# Le corps du sujet (à mettre dans un fichier tmp?):
cat /tmp/$$ | formail -I ""
rm /tmp/$$
# traitement ...
qui s'appellerait par exemple mail_extract.sh, tu lancerais la commande suivante:
pour le corps du message et l'entete au complet, tu as des exemples avec sed dans le man de formail
Publié : mer. 12 mars 2008, 09:36
par cassyb
merci tuxce.
Ce qui m'interresserait serait de pouvoir ignorer les pièces jointes
un
Code : Tout sélectionner
cat /tmp/$$ | formail -I "" -I Content-Transfer-Encoding: -I Content-Disposition
ne m'enlève même pas Content-Transfer-Encoding, Content-Disposition
Mais je suis pas sûre que même s'il arrivait à me les enlever il m'enlevera aussi les
zCqSnilhUS1U8X3cMU4qKebzGCNvAF/zUcTqxDBWsAR7u+72tyPDhaVFoDwqK8CCDwCnBOmnnwPW
0ZlmlNJ4IgBoETEOLlfYlu4FegjVUhRKMPNq1BAAbyrUn4hinn1azncyMdRLGijGRUVFKEeVaevn
1AAFfnnPkctjNBQEf9ld97U3Fs2HJ7lrtsQ0CRRUsmM3CtPichHHrmlgxVdja2nlNTJQtLZKqCLx...
une idée?
Publié : mer. 12 mars 2008, 10:21
par cassyb
sinon j'ai trouvé cette
classe en php qui marche nikel.
Publié : mer. 12 mars 2008, 10:28
par tuxce
sinon, tu avais:
qui arrete dès qu'il trouve la phrase