You are not logged in.

wcf.regNote.message

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

1

Thursday, April 7th 2005, 9:36am

Attachments aus Mail herausfiltern und extern speichern!

Das ist nun mein letztes Problem.

Die einfach Frage:
"Wie trenne ich attachments einer multipart message vom Rest und kann diese dann extern Speichern?"

Habe vielfach gehört, dass man das auch mit dem MIME-Parser Modul machen können soll, scheint mir allerdings viel zu aufwendig und unsicher (was ich bisher dazu gefunden habe).

Dann habe ich ein Modul namens "Email-MIME-Attachment-Stripper" gefunden, dessen Dok mich allerdings nicht weiterbringt.

Weiß da einer mehr zu und kann mir helfen?
cu, piep
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Thursday, April 7th 2005, 2:38pm

probiers ma mit dem CPAN Mail-Message-Attachment-Stripper-1.0

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

3

Thursday, April 7th 2005, 4:15pm

Und da ist die Doku besser? ?(
Zudem habe ich ja meistens MIME-Mails.

Email-MIME-Attachment-Stripper
http://search.cpan.org/dist/Email-MIME-A…ent/Stripper.pm

Mail-Message-Attachment-Stripper-1.0
http://search.cpan.org/~tmtm/Mail-Messag…ent/Stripper.pm

----------------------------------------------------

This should be instantiated with a Email::MIME object.
Current arguments supported:

force_filename

Try harder to get a filename, making one up if necessary.

Source code

1
my $stripper = Email::MIME::Attachment::Stripper->new($mail, %args);

Das heißt jetzt auf Deutsch?
Ich lege ein neues Email::MIME Objekt an.
Aber wofür steht $mail und %args?
$mail wird die Mail sein, aber wie ist das gemeint bzw. woher kommen die Daten? Lass ich dort den kompletten Inhalt der TXT-Datei (die die Mail enthält) übergeben? Oder kann ich z.B. die Daten nehmen, die ich mittels

Source code

1
my $entity = $parser->parse_open("mail.txt")
eingelesen habe?
Was ist mit %args, was meiner Meinung nach ein Hash ist, siehe Prozentzeichen?

This returns the message with all the attachments detached. This will alter both the body and the header of the message.

Source code

1
my Email::MIME $msg = $stripper->message;
Woher kommt $msg? Was steht da drin?

This returns a list of all the attachments we found in the message, as a hash of { filename, content_type, payload }.

Source code

1
my @attachments = $stripper->attachments;
Ok, das letzte verstehe ich natürlich.

Also ich rall da nicht viel. ;(
Spaß im Netz auf www.piep001.de

This post has been edited 1 times, last edit by "piep001" (Apr 7th 2005, 4:16pm)


Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

4

Saturday, April 9th 2005, 1:23am

Also zu Punkt 1., des versteh ich so des $mail die eigentlich Mail ist und zwar als Email::MIME Object.
Da bekommst du dann ein Stripper object ($stripper). %args weiß ich auch nicht,
denke aber des du die nicht zwingen brauchst.

Wie du dir ein Email::MIME Object aus ner Mail baust sollte eigentlich auch trivial sein.

so und deine $mail ist jetzt im stripper und zwar getrennt einmal nur die Mail ohne Attachments, abgelegt in $stripper->message und dann deine Attachments aus der Mail, abgelegt in $stripper->attachments.

Kurz:

Email::MIME inklusive Attachments -> stripper -> Email::MIME und Attachments getrennt :)

Ciao Ephraim

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

5

Saturday, April 9th 2005, 1:29am

Email::MIME

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
use Email::MIME;
fopen(TXT"<mail.txt");
my $message = <TXT>;
fclose(TXT);

my $emailMime Email::MIME->new($message);

my $stripper Email::MIME::Attachment::Stripper->new($emailMime);

my Email::MIME $msg $stripper->message;
my @attachments $stripper->attachments;


So stell ich mir des vor ... keine Ahnung obs richtig ist ?( ?( :) ;)

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

6

Monday, April 11th 2005, 9:05pm

geile Doku, wa?

Tortzdem danke für deine Mühen es zu verstehen. Nach sinnlosem rumprobieren, habe ich nun andere Wege gefunden. Da ich unter zeitdruck bin, kann ich das mit dem modul erst nach der durchführungsphase probieren. wäre aber schön, wenn es so einfach wäre.

ich melde mich, wenn es was neues gibt.
big thx, piep
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

7

Tuesday, April 12th 2005, 7:43am

jetzt hast du mich neugierig gemacht :) ... Kann doch net sein des des so kompliziert ist die Attachments da raus zu filtern ?( ?( 8o 8o

Werd des wohl selber auch mal testen! :)

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

8

Sunday, April 17th 2005, 4:11am

hab was hinbekommen.
ich filter jetzt anhand des content-type, parse den body mit "bodyhandle()" (MIME-Parser) und lese mir dann alles mit as_string als String aus.
funzt ;)
Spaß im Netz auf www.piep001.de

wcf.user.socialbookmarks.titel