Thread POP3 get Attachment (13 answers)
Opened by Gast at 2008-03-17 23:27

aspnstyle
 2008-03-18 16:43
#107210 #107210
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
ok ....
jetzt habe ich das ganze mit einer anderen bspmail probiert von hier http://www.thomas-fahle.de/pub/perl/MIME/Beispieln....

vielen dank aufjedenfall für dein versuch :D sonst hätte ich da noch 10 stunden rumgefummelt


eine andere frage ich kann ja auch statt einer Datei das selbe direkt vom server machen da muss ich dann

$entity = $parser->parse_data($message);

was muss ich in der $message ausgeben?
Code: (dl )
1
2
3
4
5
6
7
8
9
 
$message = $pop3->top( $msgnr, 0 )
#wäre ja nur der header

$message = $pop3->list( $msgnr )
#die größe in oktetten oder?

$message = $pop3->get( $msgnr )
#das wär dann sozusagen die ganze mail oder?


die ich dann auch parser??? und dann in mit dem anderen Code weiter führe.


bzw ich sehe of im internet dass Variablen vorher mit my $test deklariert werden wie jetzt auch bei dir. Welchen sinn macht das my vor der variable? und was genau bedeuten die use strict und use warnings... also warnings kann ich mir noch erklären und strict ... streng? gibt es irgendwo eine genau erklärung von dem ganzen... ich muss mich glaube ich entschuldigen das ich noch so unerfahren bin aber arbeite erst seit ein paar tagen damit und perl begestert mich von tag zu tag mehr :D



edit:
also das ist mein plan und mein script bis jetzt. Es logt sich am server ein und meldet sich als user xx an. checkt dort ob neue mails vorhanden sind. so jetzt möchte ich das es eben diese neuen mails downloadet und müsste dieses script mit dem anderen verknüpfen.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/perl
use Net::POP3;
use MIME::Parser;
use warnings;
use strict;


my $subject_width = 10;
my $from_width = 50;

print "Mail Server: xx.yy.at\n"; my $mailserver = "xx.yy.at";
print "Username: xxxxx\n"; my $username = "xxxx";
print "Password: *******\n"; my $password = "xxxx";

#Verbindung zum Server wird aufgebaut;
my $pop3 = Net::POP3->new($mailserver, Timeout => 5) or die "Verbindung zu $mailserver nicht aufgebaut";
#Anmeldung am Server;

my $tot_msg = $pop3->login($username,$password) or die "Fehler beim anmelden $username";
if($tot_msg != 0){
print ("\n Sie haben $tot_msg Nachrichten\n\n");
print "Nr. Betreff: Von: Neuigkeit:\n";
print "_________________________________________________\n";
} else {
print ("\n Sie haben keine neue Nachricht\n\n");
}

foreach my $msg_id (1 .. $tot_msg) {
my $header = $pop3 -> get($msg_id);

my ($subject, $from, $status) = analyze_header($header);

#Abfrage von welche Email Adresse
#if( index( lc $from, "steiner" ) >= 0 ){

printf "[%1d] %-${subject_width}s... %-${from_width}s... %6s\n",
$msg_id,
substr($subject,0,$subject_width),
substr($from ,0,$from_width ),
$status;
#}
}

if($tot_msg != 0){
print "Emails Loeschen?[y] or [n]\n";
}else {
print "Quit?"
}

my $quit = <STDIN>; chomp $quit;
if (lc $quit eq 'y') {
print "quitting and deleting...\n";
foreach my $msg_id (1 .. $tot_msg) {
$pop3->delete($msg_id);
}
$pop3 -> quit;
}

sub analyze_header {
my $header_array_ref = shift;
my $header = join "", @$header_array_ref;
my ($subject) = $header =~ /Subject: (.*)/m;
my ($from ) = $header =~ /From: (.*)/m;
my ($status ) = $header =~ /Status: (.*)/m;

if (defined $status) {
$status = "Unread" if $status eq 'O';
$status = "Read" if $status eq 'R';
$status = "Read" if $status eq 'RO';
$status = "Ne $status = "-";w" if $status eq 'NEW';
$status = "New" if $status eq 'U';
}
else {$status = "-";}

return ($subject, $from, $status);
}

View full thread POP3 get Attachment