Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème avec module perl : où demander de l'aide?

4 réponses
Avatar
ecureuil
bonjour,

J'ai un problème avec les modules perl
Email::MIME
et
Email::MIME::Attachment::Stripper

J'utilise ces 2 modules pour 'décortiquer' les mails.
Tous les mails qui arrivent pour un utilisateur donné, ne sont pas mis dans
une boite mail mais traités directement par un programme.
Dans ce programme, je récupère le corps du mail que j'enregistre dans un
fichier.
S'il y a des pièces jointes, j'enregistre chaque pièce jointe dans un
fichier.

J'ai fait des essais avec mac, windows, linux et différents clients mail.

J'ai un souci avec linux + kmail 1.7.x.
Il n'arrive pas à trouver les différentes parties du mail que je reçois
quand c'est un mail multipart...

Je ne sais pas trop où m'adresser pour trouver une solution...

Il y a peut-être d'autres modules que je pourrais utiliser...
(J'ai trouvé beaucoup de modules perl pour traiter ce que je veux faire!)
Lequel choisir?

merci pour votre aide
anne

4 réponses

Avatar
Emmanuel Florac
Le Mon, 12 Jun 2006 14:16:39 +0200, ecureuil a écrit :


J'ai un souci avec linux + kmail 1.7.x.
Il n'arrive pas à trouver les différentes parties du mail que je reçois
quand c'est un mail multipart...


Essaie de changer l'encapsulation, ou l'encodage des pièces jointes
(uuencode, base64, etc).

--
Sutor ne ultra Crepidam.

Avatar
ecureuil
"Emmanuel Florac" a écrit dans le message de news:

|
| >
| > J'ai un souci avec linux + kmail 1.7.x.
| > Il n'arrive pas à trouver les différentes parties du mail que je reçois
| > quand c'est un mail multipart...
|
| Essaie de changer l'encapsulation, ou l'encodage des pièces jointes
| (uuencode, base64, etc).
|

Je ne comprends pas ce que tu veux que je fasse... (un ti peu débutante)

Ce sont des mails que je reçois.
Ils peuvent venir de différents os et différents client mail

je vois le client mail utilisé : User-Agent: ou X-Mailer:

je suis entrain d'essayer MIME::Parser...
Il trouve le bon nombre de parties du mail... mais je n'arrive pas à
récupérer le nom du fichier envoyé...
le filename du header de chaque partie

anne
Avatar
Emmanuel Florac
Le Mon, 12 Jun 2006 23:09:08 +0200, ecureuil a écrit :


Ce sont des mails que je reçois.
Ils peuvent venir de différents os et différents client mail


Montre le code que tu utilises. Tu n'arrives pas à ouvrir les mails qui
viennent de kmail?

--
A thing of beauty is a joy forever.
J. Keats.

Ah! Singe débotté, hisse un jouet fort et vert!
Marcel Bénabou.

Avatar
ecureuil
"Emmanuel Florac" a écrit dans le message de news:

|
| >
| > Ce sont des mails que je reçois.
| > Ils peuvent venir de différents os et différents client mail
|
| Montre le code que tu utilises. Tu n'arrives pas à ouvrir les mails qui
| viennent de kmail?
|

au lieu que les mails de l'utilisateur zoro aillent dan une boite, je
récupère le mail arrivant avec un pipe...

Avec KMail/1.7.x :
boundary="Boundary-00=_ficdEbM/nb3/GhZ"

my $message = do { local $/; <> }; # c'est quelqu'un du niws-group qui
m'a donné cette ligne (crado ce que j'avais écrit)
my $parser = Email::MIME->new($message);
my @parts = $parser->parts();
$smtp->datasend(sprintf ("There are %d parts in the messagen", $#parts
+1 ) );

=> There are 3 parts in the message
Ce n'est pas bon, il y a 2 parties dans ce message, pas 3 parties

$message =>

Received: (qmail 3807 invoked by alias); 25 May 2006 15:02:12 -0000
Delivered-To:
Received: (qmail 3804 invoked from network); 25 May 2006 15:02:12 -0000
Received: from pc-00001.xxxxxxxxxxx(HELO xxxxxxxxxxx) (10.97.1.1)
by maison1.testam.xxxxxxxxxxx (10.97.1.45) with SMTP; 25 May 2006
15:02:12 -0000
Received: (qmail 12517 invoked from network); 25 May 2006 15:16:32 -0000
X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on tux.xxxxxxxxxxx
Received: from smtp5-xxx.free.fr (212.xxx.xxx.xxx)
by tux.xxxxxxxxxxx (82.xxx.xxx.xxx) with ESMTP; 25 May 2006 15:16:19 -0000
Received: from geo.localdomain (vig38-1-82-xxx.xxx-xxx.fbx.proxad.net
[82.xxx.xxx.xxx])
by smtp5-xxx.free.fr (Postfix) with ESMTP id F03591DE91
for ; Thu, 25 May 2006 17:02:06 +0200
(CEST)
From: Monique =?iso-8859-1?q??=
Reply-To:
To:
Subject: Re-test
Date: Thu, 25 May 2006 17:09:19 +0200
User-Agent: KMail/1.7.1
MIME-Version: 1.0
Content-Type: Multipart/Mixed;
boundary="Boundary-00=_ficdEbM/nb3/GhZ"
Message-Id:

--Boundary-00=_ficdEbM/nb3/GhZ
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

And now, mylady, with la PJ, enfin j'espere
--
Monique

--Boundary-00=_ficdEbM/nb3/GhZ
Content-Type: image/jpeg;
name="GateauPavotChocolat.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="GateauPavotChocolat.jpg"

/9j/4AAQSkZJRgABAQEASABIAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAIBgYHBgUI
...
ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER
ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERF//Z

--Boundary-00=_ficdEbM/nb3/GhZ--

my $stripper = Email::MIME::Attachment::Stripper->new($message);
my @attachments = $stripper->attachments;
$smtp->datasend(sprintf ("There are %d attachments in the messagenn",
$#attachments +1 ) );

=> There are 1 attachments in the message
C'est bon. 1 attachment!

my Email::MIME $msg = $stripper->message->as_string;
$smtp->datasend(sprintf( "Attach Message :n%sn", $msg));

Attach Message :

Received: (qmail 3807 invoked by alias); 25 May 2006 15:02:12 -0000
Delivered-To:
Received: (qmail 3804 invoked from network); 25 May 2006 15:02:12 -0000
Received: from pc-00001.xxxxxxxxxxx(HELO xxxxxxxxxxx) (10.97.1.1)
by maison1.testam.xxxxxxxxxxx (10.97.1.45) with SMTP; 25 May 2006
15:02:12 -0000
Received: (qmail 12517 invoked from network); 25 May 2006 15:16:32 -0000
X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on tux.xxxxxxxxxxx
Received: from smtp5-xxx.free.fr (212.xxx.xxx.xxx)
by tux.xxxxxxxxxxx (82.xxx.xxx.xxx) with ESMTP; 25 May 2006 15:16:19 -0000
Received: from geo.localdomain (vig38-1-82-xxx.xxx-xxx.fbx.proxad.net
[82.xxx.xxx.xxx])
by smtp5-xxx.free.fr (Postfix) with ESMTP id F03591DE91
for ; Thu, 25 May 2006 17:02:06 +0200
(CEST)
From: Monique =?iso-8859-1?q??=
Reply-To:
To:
Subject: Re-test
Date: Thu, 25 May 2006 17:09:19 +0200
User-Agent: KMail/1.7.1
MIME-Version: 1.0
Content-Type: Multipart/Mixed;
boundary="Boundary-00=_ficdEbM/nb3/GhZ"
Message-Id:

--Boundary-00=_ficdEbM/nb3/GhZ
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

And now, mylady, with la PJ, enfin j'espere
--
Monique

--Boundary-00=_ficdEbM/nb3/GhZ

=> Ce n'est pas bon. Il n'aurait pas du mettre le dernier Boundary

my Email::MIME $msg1 = $stripper->message;
my $msg_body = $msg1->body;
$smtp->datasend(sprintf( "Attach Message body :n%sn", $msg_body));
$smtp->datasend(sprintf( "Attach Message body size : %d Bytesn", ( length
( $msg_body ) ) ) );
$smtp->datasend(sprintf( "Incoming Mail contentstype : %snn", (
$msg1->content_type ) ) );

=>
Attach Message body :


Attach Message body size : 1 Bytes
Incoming Mail contentstype : multipart/mixed;
boundary="Boundary-00=_ficdEbM/nb3/GhZ"

J'ai ce problème avec kmail 1.7.1 and 1.7.2
Avec les autres clients mail, je n'ai pas de problème. Il décortique bien
les mails.
Je me demande si cela vient du boundary...

exemple:
Content-Type: multipart/mixed; boundary=Apple-Mail-2-621846957
Content-type: multipart/mixed;
boundary="Boundary_(ID_7yf+ICrVh+A4LyflJxVCtw)"
Content-Type: multipart/mixed;
boundary="------------000402030106050003040902"
=> c'est ok...

Je suis entrain d'essayer de faire la même chose avec MIME::Parser.
J'ai besoin de mettre le corps du mail dans un fichier et chaque pièce
jointe dans un fichier...
Là j'ai un souci pour récupérer le nom de chque pièce jointe... mais je n'ai
plus le problème de mail mal décortiqué...

merci
anne