Schrift
[thread]2943[/thread]

Exchange Mail parsen

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
rockthecity
 2005-07-31 13:26
#29526 #29526
User since
2005-07-31
1 Artikel
BenutzerIn
[default_avatar]
Hi Forum,

ich habe folgendes Problem.
Ich muss E-Mail's von einem Exchange Server abholen und diese dann parsen. Der Mail-Body besteht aus einer xml-ähnlichen Struktur.

Mein Problem nun wie kann ich da Vorgehen um dieses Problem zu lösen ?

Vielen Dank für eure Hilfe
[E|B]
 2005-07-31 14:05
#29527 #29527
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich kenne mich zwar mit MS Exchange Server nicht aus, aber mit WIN32::OLE sollte das bestimmt zu machen sein.
Parsen kannst du mit XML::Parser oder XML::Simple.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
esskar
 2005-07-31 15:54
#29528 #29528
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
der Exchange Server POP3 oder IMAP.
Deswegen ist die beste Wahl wohl Mail::Box; das ist alles drin, was du brauchst
Gast Gast
 2005-07-31 17:42
#29529 #29529
OK das klappt schonmal.
Bekomme nun meine Mail in diesem Format.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Return-Path: <123@synetrix.de.example>
X-Flags: 0000
Delivered-To: GMX delivery to [EMAIL=123@gmx.de.example]123@gmx.de.example[/EMAIL]
Received: (qmail invoked by alias); 31 Jul 2005 13:35:28 -0000
Received: from c2.ibone.ch (EHLO c2.ibone.ch) [213.203.217.26]
 by mx0.gmx.net (mx007) with SMTP; 31 Jul 2005 15:35:28 +0200
Received: from [127.0.0.1] (dsl-084-059-139-030.arcor-ip.net [84.59.139.30])
    by c2.ibone.ch (c2.ibone.ch) with ESMTP id 065AA5AC191
    for <123@gmx.de.example>; Sun, 31 Jul 2005 15:35:28 +0200 (CEST)
Message-ID: <42ECD39F.5080306@synetrix.de.example>
Date: Sun, 31 Jul 2005 15:35:27 +0200
From: Patrick 123 <123@synetrix.de.example>
Organization: Synetrix IT & Webservices
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: de-DE, de, en-us, en
MIME-Version: 1.0
To:123@gmx.de.example
Subject: CALL
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
X-GMX-Antivirus: -1 (not scanned, may not use virus scanner)
X-GMX-Antispam: 0 (Mail was not recognized as spam)
X-GMX-UID: 97aeYsAHeSEkdSpdG3UhaXN1IGRvb8C9

<?xml version="1.0" encoding="ISO-8859-1"?>
<ServiceRequest>
<ServiceCall>gsergeset</ServiceCall>
<TLTID>002332</TLTID>
</ServiceRequest>


Kann mir jemand sagen wie ich nur den XML Teil hier herausbekomme ?

edir pq: email-adressen laut http://www.rfc-editor.org/rfc/rfc2606.txt verfälscht.\n\n

<!--EDIT|pq|1122886845-->
Relais
 2005-07-31 19:10
#29530 #29530
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
$message =~ s/^.*?\n\n//s; # Alles loeschen bis zur ersten leeren Zeile.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
dominicn
 2005-07-31 19:31
#29531 #29531
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Oder wenn du beide Teile brauchst:

Code: (dl )
my ($header, $body) = split(/\n\n/, $message, 2)
Gast Gast
 2005-07-31 20:19
#29532 #29532
Super,
danke euch allen.
Gast Gast
 2005-07-31 20:34
#29533 #29533
Ach Mist doch zu früh gefreut, kriege es irgendwie nicht hin.
Er eschreibt mir immer noch den kompletten Satz in meine XML Datei.Kann mir nochmal jemand helfen ?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!C:\Perl\bin\Perl.exe
use Net::POP3;
# Constructors
$pop = Net::POP3->new('mail.gmx.de');
$pop = Net::POP3->new('mail.gmx.de', Timeout => 60);
$username='xxxxx@gmx.de';
$password='xxxxx';


if ($pop->login($username, $password) > 0) {
my $msgnums = $pop->list; # hashref of msgnum => size
foreach my $msgnum (keys %$msgnums) {
sleep 2;
$zeitstempel=time();
flock (IMPORTER, 2);
my $msg = $pop->get($msgnum);
open(IMPORTER,">F:/CALL_IMPORTER/$zeitstempel.xml");
$msg =~ s/^.*?\n\n//s;
print IMPORTER @$msg;
#print localtime();
print $zeitstempel;
#$pop->delete($msgnum);
close IMPORTER;
}
}

$pop->quit;
sleep 5;
$filemover=system("F:/move.bat");
print $filemover;
Relais
 2005-07-31 21:43
#29534 #29534
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein $msg ist offenbar eine Arrayreferenz, s/// bräuchte aber einen String.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Gast Gast
 2005-07-31 22:10
#29535 #29535
Kennst du einen Weg um dies auch in einem Array zu realisieren ?
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2005-07-31 13:26.