Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12552[/thread]

Mail::Box::Manager findet keine E-Mails in Ordner



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2008-09-27 18:42
#114983 #114983
Hallo,

ich habe eine Mailbox, an die täglich eine Email mit Anhängen verschickt wird. Einmal täglich will ich nun ein Script starten, das dieses Postfach abruft, die Email auseinandernimmt und dann etwas damit tut.
Das passendste bei meinem Provider (Webhostone) installierte Modul dafür scheint mir Mail::Box::Manager zu sein.
Folgender Code tut auch irgendwas:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl -w

use Mail::Box::Manager;

my $mgr    = Mail::Box::Manager->new;

my $pop = $mgr->open(type => 'pop3',
            username => 'Name',
            password => 'Passwort',
            server_name => 'domain.de',
                        );

my $folder = $mgr->open(folder => '.');


foreach my $msg ($folder->messages) { # all messages
        my @to = $msg->to;
}                                          


Er spuckt keine Fehlermeldungen aus, findet aber im angegebenen Ordner anscheinend keine Emails, die er bearbeiten könnte.

Ich nehme an, ich muss irgendwie die Inbox "betreten".
Laut Doku von Mail::Box::Manager kann man für den Folder die Variable $ENV{MAIL} angeben; dann spuckt mir das Script aber

ERROR: No foldername specified to open.

aus. Ich habe es bereits mit allen Möglichen Foldernames versucht ("Inbox", "inbox", "INBOX"), aber nichts brachte ein anderes Ergebnis.
Weiß irgendwer, wie ich da weiterkomme? Oder kann ich das, was ich möchte, evtl. besser mit einem anderen Modul erreichen?
Dubu
 2008-09-27 19:10
#114984 #114984
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Wenn ich das richtig sehe, öffnest du erst eine POP3-Mailbox, mit der du nichts weiter machst, und anschließend eine lokale Mailbox, die dem aktuellen Verzeichnis entsprechen soll (was höchstwahrscheinlich nicht das ist, was du möchtest). Außerdem sind da keine Fehlerabfragen (was liefern beide $mgr->open zurück?). Was ist denn, wenn du auf Messages in $pop zugreifst, statt in $folder?
GwenDragon
 2008-09-27 19:24
#114985 #114985
User since
2005-01-17
14741 Artikel
Admin1
[Homepage]
user image
In POP3 gibt es keine Folder auf dem Server wie in IMAP. ;)
Schr_Katze
 2008-09-27 22:04
#114986 #114986
User since
2008-09-27
4 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich bin der Themenstarter (okay, registrieren und Thema starten wäre in umgekehrter Reihenfolge EVTL. sinnvoller gewesen...)

Ich interpretiere die entsprechende POD-Datei (http://search.cpan.org/~markov/Mail-Box-2.084/lib/...) so, dass ich erst einmal einen "Manager" anlegen muss (s.o.: $mgr), egal, welches Protokoll benutzt wird.
Danach muss ich einen Folder definieren; sonst spuckt mir das Script übrigens "ERROR: No foldername specified to open." aus, wie ich eben gemerkt habe.
Da ich auf dem Server keinen Ordner "Inbox" finde (s. Fehlermeldung im ersten Posting) und $ENV{MAIL} auch nichts brachte, dachte ich, mit "." den aktuellen Ordner auf dem Server zu kriegen. Dem ist nicht so, ich kriege, wie von Dubu vermutet, das aktuelle LOKALE Verzeichnis.

Hat irgendjemand eine Idee, welches Modul ich ggf. sonst noch benutzen könnte?
Gast Gast
 2008-09-27 22:42
#114987 #114987
Schr_Katze
 2008-09-27 22:48
#114988 #114988
User since
2008-09-27
4 Artikel
BenutzerIn
[default_avatar]
Gast+2008-09-27 20:42:27--
!!!Crosspost!!!
http://www.traum-projekt.com/forum/19-traum-dynamik/113864-perl-problem-mail-box-manager.html


Ist das ein Problem?
Gast Gast
 2008-09-27 22:50
#114989 #114989
Das funktioniert nicht?
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl

use strict;
use warnings;
use Mail::Box::Manager;

my $mgr    = Mail::Box::Manager->new;

my $mailbox = $mgr->open(
                      type              => 'pop3',
                      username     => 'Name',
                      password      => 'Passwort',
                      server_name => 'domain.de',
                   );

for my $msg ($mailbox->messages) 
{
  # all messages
  my @to = $msg->to;
  print "@to\n";
}
Gast Gast
 2008-09-27 22:55
#114990 #114990
Schr_Katze+2008-09-27 20:48:06--
Ist das ein Problem?


Nicht direkt. Nur wenn dir auf einer anderen Seite geholfen wird, würden wir das gerne wissen. Und andere mit dem Problem sicher auch.

Im andern Forum ist das sicherlich nicht anders.

Wenn dann der Fragenden mit einer Antwort "Hab' es hin bekommen, Danke" daher kommt, oder sich gar nicht mehr meldet, ist das für alle sehr unbefriedigend. Ach für Leute die später mal per Suche darauf stoßen.

Darum ist es sinnvoll Crosposts kenntlich zu machen, in allen Foren.
Schr_Katze
 2008-09-27 23:01
#114991 #114991
User since
2008-09-27
4 Artikel
BenutzerIn
[default_avatar]
Zum Crosspost: Wenn ich also hier die richtige Antwort kriege, setze ich einen Link vom anderen Forum hierher "Habe dort die richtige Antwort bekommen" bzw. umgekehrt?
Gast Gast
 2008-09-27 23:08
#114992 #114992
Das währe günstig.

Aber auch sonst ist ein Link zu den andern Seiten nützlich. Denn wir wissen nicht was man dir dort erzählt und vorschlägt. Unter Umständen erzählt man dir in allen Foren zig mal das selbe und das ist doch auch nicht in deinem Sinn, und wir machen uns die Arbeit grundlos.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-09-27 18:42.