2019-08-29T22:30:36 styx-cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Net::POP3::_SSL>>> Net::POP3::_SSL
Net::POP3::_SSL>>> IO::Socket::SSL(2.060)
Net::POP3::_SSL>>> IO::Socket::IP(0.38)
Net::POP3::_SSL>>> IO::Socket(1.38)
Net::POP3::_SSL>>> IO::Handle(1.36)
Net::POP3::_SSL>>> Exporter(5.72)
Net::POP3::_SSL>>> Net::POP3(3.11)
Net::POP3::_SSL>>> Net::Cmd(3.11)
Net::POP3::_SSL=GLOB(0x556ee1666428)<<< +OK POP3 server ready <bla@blub.de>
Net::POP3::_SSL=GLOB(0x556ee1666428)>>> CAPA
Net::POP3::_SSL=GLOB(0x556ee1666428)<<< +OK Capability list follows:
Net::POP3::_SSL=GLOB(0x556ee1666428)>>> AUTH DIGEST-MD5
Net::POP3::_SSL=GLOB(0x556ee1666428)<<< + bm9uY2U9IjMyOGFkNTdkNDQyNjZmNDZjOTYxMzlkNmQ3M2NkNWMwIixxb3A9ImF1dGgiLGNoYXJzZXQ9dXRmLTgsYWxnb3JpdGhtPW1kNS1zZXNz
Net::POP3::_SSL=GLOB(0x556ee1666428)>>> YXV0aHppZD0icC5tYm1hbi1wZXJsLWFkbUBhbmljb20uZGUiLGNoYXJzZXQ9dXRmLTgsY25vbmNlPSJhYWU2MWU2YWZkNjdmYmYxMTljMTRiMmVhN2UyY2QyNyIsZGlnZXN0LXVyaT0icG9wL3BvcDMuc3RyYXRvLmRlIixuYz0wMDAwMDAwMSxub25jZT0iMzI4YWQ1N2Q0NDI2NmY0NmM5NjEzOWQ2ZDczY2Q1YzAiLHFvcD1hdXRoLHJlc3BvbnNlPTMxM2UwNWM0NjBhNGIwY2E0ZWJlZjYwMTA2ODRhMDAxLHVzZXJuYW1lPSJwLm1ibWFuLXBlcmwtYWRtQGFuaWNvbS5kZSI=
Net::POP3::_SSL=GLOB(0x556ee1666428)<<< -ERR [AUTH] Authentication failed
Net::POP3::_SSL=GLOB(0x556ee1666428)>>> QUIT
Net::POP3::_SSL=GLOB(0x556ee1666428)<<< +OK Closing connection
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
sub _login{ my $self = shift; my $auth = shift; $self->{IO}->getline || die "Server antwortet nicht!\n"; $self->{IO}->print("USER $auth->{user}", CRLF); $self->_getline; $self->{IO}->print("PASS $auth->{pass}", CRLF); $self->_getline; } sub _getline{ my $self = shift; my $status = $self->{IO}->getline || die "Verbindung verloren!\n"; print $status if $self->{dev}; my $st = [split /\s+/, $status]; die "Fehler: $status\n" if $st->[0] ne '+OK'; }
2019-08-29T21:51:57 mixxerDann ist dein Programmdesign falsch wenn es einfriert.Mein Programm soll jedenfalls nicht wg. falscher Zugangsdaten jedesmal zehn Sekunden einfrieren...
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 77 78 79 80 81 82 83 84 85 86
sub _accounts_verify # { &_database_read; my @verifyList = &_string_to_list($opt_x); LOOP: foreach (@verifyList) { $pm->start and next LOOP; # do the fork my $x_3 = $dbData->{$_}->{ +POP3 } // 0; my $x_4 = $dbData->{$_}->{ +IMAP4 } // 0; my $x_S = $dbData->{$_}->{ +SMTP } // 0; my $x_U = $dbData->{$_}->{ +USER } // 0; my $x_P = $dbData->{$_}->{ +PASS } // 0; my $x_H = $dbData->{$_}->{ +HELO } // 'Foo'; $x_3 and $dbData->{$_}->{pop3folk} = &_login_pop3( $x_3, $x_U, $x_P ); $x_4 and $dbData->{$_}->{imap4folk} = &_login_imap4( $x_4, $x_U, $x_P ); $x_S and $dbData->{$_}->{smtpfolk} = &_login_smtp( $x_S, $x_U, $x_P, $x_H ); $pm->finish; } $pm->wait_all_children; print Dumper $dbData; # hier gibt es keine Net::xxx Objekte mehr foreach ( keys %{$dbData} ) { # damit ist das hier vorläufig sinnlos... $dbData->{$_}->{pop3folk}->quit if exists $dbData->{$_}->{pop3folk}; $dbData->{$_}->{imap4folk}->disconnect if exists $dbData->{$_}->{imap4folk}; $dbData->{$_}->{smtpfolk}->quit if exists $dbData->{$_}->{smtpfolk}; } } sub _login_pop3 # # 1. SSL-Verbindung zu einem pop3s-Server aufbauen # 2. Mit den übergebenen Zugangsdaten authentifizieren # { my $host = shift; my $user = shift; my $pass = shift; my $client = Net::POP3->new( Host => $host, SSL => 1, Debug => $verbose ) || die(); $client->auth( $user, $pass ); return $client; } sub _login_imap4 # # 1. SSL-Verbindung zu einem imap4s-Server aufbauen # 2. Mit den übergebenen Zugangsdaten authentifizieren # { my $host = shift; my $user = shift; my $pass = shift; my $client = Mail::IMAPClient->new( Debug => $verbose ) || die; $client->Server($host); $client->Ssl(1); $client->connect || die; $client->User($user); $client->Password($pass); $client->login; say "IMAP4 -- $host -- $user -- OK!"; return $client; } sub _login_smtp # # 1. SSL-Verbindung zu einem smtp-Server aufbauen # 2. Mit den übergebenen Zugangsdaten authentifizieren # { my $host = shift; my $user = shift; my $pass = shift; my $helo = shift; my $client = Net::SMTP->new( Host => $host, Debug => $verbose, SSL => 1, SendHello => 0, ) || die(); $client->hello($helo) || die(); $client->auth( $user, $pass ); return $client; }
QuoteWie kann ich die Objekte in das Hauptprogramm hinüberretten?
2019-08-30T08:51:33 LinuxerWenn allerdings der Client diese Wartezeit bestimmen dürfte, wäre dieser Ansatz sinnlos.
2019-08-30T12:27:22 GwenDragonDa kannst du am clientseitig nix ändern.
2019-08-30T05:33:26 mixxerCode: (dl )Net::POP3::_SSL=GLOB(0x556ee1666428)<<< -ERR [AUTH] Authentication failed
2019-08-30T07:19:06 rostiWieso friert Dein Programm bei fehlerhaften Zugangsdaten ein?
2019-08-30T12:29:22 GwenDragon2019-08-29T21:51:57 mixxerDann ist dein Programmdesign falsch wenn es einfriert.Mein Programm soll jedenfalls nicht wg. falscher Zugangsdaten jedesmal zehn Sekunden einfrieren...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
sub _verify_pop3 # # 1. SSL-Verbindung zu einem pop3s-Server aufbauen # 2. Mit den übergebenen Zugangsdaten authentifizieren # { my $host = shift; my $user = shift; my $pass = shift; my $client = Net::POP3->new( Host => $host, SSL => 1, Debug => $verbose ) || die(); $client->auth( $user, $pass ); $client->quit() || die(); say "POP3 -- $host -- $user -- OK!"; }
2019-08-30T12:29:22 GwenDragonDann ist dein Programmdesign falsch wenn es einfriert.
Quotedein Beispiel soll das interne Verhalten von Net::POP3 bei der Authentifizierung veranschaulichen?