OVH Cloud OVH Cloud

Recuperation pour archive d'une mailing-list...

5 réponses
Avatar
loiseauthierry
Salut,

J'essaie pour un de mes sites web de mettre en place en php un accès à
des archives d'une liste de diffusion provenant de chez Free.fr (la
ml.free.fr ne proposant pas l'archivage...)

Pour ce faire, je tente d'extraire les e-mails enregistrés depuis mon
newsreader MacSOUP : je parts donc d'un fichier "txt" de près de 4.6Mo

Ce fichier /a priori/ met comme repère pour les "fin d'e-mail" la
séquence suivante :

\r \r\r
(8 espaces)

Depuis windows, le \r doit être plutôt \n\r mais bon, passons...

Ce que j'aimerais pouvoir faire, c'est enregistrer dans autant de
fichiers les e-mails et pour chacun des e-mails, pouvoir analyser les
en-têtes, l'en-tête et le corps étant séparé par une séquence :

\r\r\r

J'ai bien réussi à "exploder" les emails, en retrouvant le bon nombre,
mais après ça, dans le tableau ainsi généré, je ne parviens pas à
retrouver les lignes des emails, les "\r" semblant alors inexistant ?!

Mon but : récupérer depuis chacun des en-têtes les Date: From: etc. et
enregistrer dans un fichier .txt l'e-mail sous un nom présenté par son
TimeStamp (et ainsi dans un fichier "index", savoir l'ordre
chronologique des discussions)

Je pensais alors à obtenir un tableau (les e-mails) contenant un tableau
(les lignes d'en-tête et de corps) et enfin, après avoir analysé ça,
enregistrer *avec les retours-à-la-ligne* dans des fichiers tout ça !

Ne maîtrisant rien du tout PHP, je vous demande votre aide et avis.

Merci par avance et bien bonne nuit !

Thierry

PS : Je ne sais pas si j'ai été clair :-/
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?

5 réponses

Avatar
Olivier Miakinen

[...]

Ce fichier /a priori/ met comme repère pour les "fin d'e-mail" la
séquence suivante :

r rr
(8 espaces)

Depuis windows, le r doit être plutôt nr mais bon, passons...


Non, sous Windows c'est l'inverse : rn. Et il est possible que les
fonctions de lecture des fichiers en mode texte sous MacOS remplacent
les r par des n, de la même manière que sous Windows cela remplace
rn par n seul (et que sous Unix cela laisse n inchangé).

[...]

J'ai bien réussi à "exploder" les emails, en retrouvant le bon nombre,
mais après ça, dans le tableau ainsi généré, je ne parviens pas à
retrouver les lignes des emails, les "r" semblant alors inexistant ?!


... remplacés par des n ?

Quelques pistes pour avancer dans le problème :
- lire les fichiers en mode binaire, et chercher les r ;
- lire les fichiers en mode texte, et chercher les n ;
- afficher le contenu de quelques lignes caractére par caractère
et en hexadécimal, pour savoir exactement ce que tu dois traiter
dans ton programme.

Avatar
Thierry Loiseau
"Olivier Miakinen" <om+ a écrit dans le message de
news:d3l3o5$6j9$

Depuis windows, le r doit être plutôt nr mais bon, passons...


Non, sous Windows c'est l'inverse : rn. Et il est possible que les
fonctions de lecture des fichiers en mode texte sous MacOS remplacent
les r par des n, de la même manière que sous Windows cela remplace
rn par n seul (et que sous Unix cela laisse n inchangé).


En hexa, je trouve 0D 0A (0D = r alors ?)

J'ai bien réussi à "exploder" les emails, en retrouvant le bon nombre,
mais après ça, dans le tableau ainsi généré, je ne parviens pas à
retrouver les lignes des emails, les "r" semblant alors inexistant ?!


... remplacés par des n ?


Je vais voir ça ! Merci !

Quelques pistes pour avancer dans le problème :
- lire les fichiers en mode binaire, et chercher les r ;


Comment faire ? Désolé, je débute depuis longtemps en PHP :-(

- lire les fichiers en mode texte, et chercher les n ;


idem

- afficher le contenu de quelques lignes caractére par caractère
et en hexadécimal, pour savoir exactement ce que tu dois traiter
dans ton programme.


Ok

A++,
Thierry


Avatar
Thierry Loiseau
"Olivier Miakinen" <om+ a écrit dans le message de
news:d3l3o5$6j9$

[...]

Ce fichier /a priori/ met comme repère pour les "fin d'e-mail" la
séquence suivante :

r rr
(8 espaces)



(...)

J'ai bien réussi à "exploder" les emails, en retrouvant le bon nombre,
mais après ça, dans le tableau ainsi généré, je ne parviens pas à
retrouver les lignes des emails, les "r" semblant alors inexistant ?!


... remplacés par des n ?


Je viens de tester : idem qu'un r, ça ne marche pas !

Thierry


Avatar
Olivier Miakinen

Depuis windows, le r doit être plutôt nr mais bon, passons...


Non, sous Windows c'est l'inverse : rn. [...]


En hexa, je trouve 0D 0A (0D = r alors ?)


Oui.
r = carriage return = 13 = 0x0D
n = line feed = 10 = 0x0A

- afficher le contenu de quelques lignes caractére par caractère
et en hexadécimal, pour savoir exactement ce que tu dois traiter
dans ton programme.


Ok


Tu nous tiens au courant ?

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.



Avatar
loiseauthierry
Olivier Miakinen <om+ wrote:

- afficher le contenu de quelques lignes caractére par caractère
et en hexadécimal, pour savoir exactement ce que tu dois traiter
dans ton programme.


Ok


Tu nous tiens au courant ?


Oui. J'ai tout effacé et recommencé à zéro. Testé depuis Windows, ça
roule... Je vais faire des nouveaux tests depuis le Mac

Merci !

Thierry
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?