Server IP : 85.214.239.14 / Your IP : 3.16.49.213 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/doc/fetchmail/contrib/ |
Upload File : |
#!/usr/bin/perl # Copyright 2000 john Summerfield ,summer@os2.ami.com.au> # Your choice of licence: GPL 2 or later, or same licence as Perl. # # Warranty? None # If it breaks? The pieces are yours # If it breaks something? You drove it. # Bugs? At least one. # now we've cleared the air; # This supposed to allow one to talk pop-3 to a mail server. If you're lucky (and know how) # you might also be able to talk a few other Internet protocols with it. # Typically, it's run thus: # pop2test.1 <mailserver> [<mailport>] # mailport's optional; default is 110 (pop-3). # # Having started, you type away much as you would with telnet. # # # # It has this great advantage over telnet: it reads its input from stdin and writes to stdout; # you can prepare the entire sequence in a file, then run it this: # pop2test.1 <thefileyoujustcreated >theresultsyouwanttoperuse host port # # # uses: # 1 Debugging POP3 (and maybe imap does anyone know?) mail problems # 2 Deleting the occasional piece of mail that's too big or stuffs fetchmail. # 3 Talking to sendmail # use Socket; sub hx; sub getreply; $timeout=1; $RemoteHost = $ARGV[0];shift; $RemotePort = $ARGV[0] || 110;shift; ($PRname,$PRaliases,$PRport,$PRproto) = getservbyname($RemotePort,'tcp'); $PRport=$RemotePort unless $PRport; $proto=getprotobyname($PRproto); $RemoteIP = inet_aton $RemoteHost or die "Can't resolve $RemoteHost"; $that = pack 'Sna4x8',AF_INET, $PRport, $RemoteIP; socket(REMOTESITE,AF_INET,SOCK_STREAM,$proto) or die "Can't create socket to $RemoteHost: $!\n";; connect(REMOTESITE, $that) or die "Can't connect: $!\n"; select(REMOTESITE);$|=1;select STDOUT; $rin = $win = $ein = ''; vec($rin,fileno(REMOTESITE),1) = 1; #vec($win,fileno(REMOTESITE),1) = 1; $ein = $rin | $win; getreply; while ($L=<STDIN>) { chomp $L; print REMOTESITE $L . "\r\n"; print "send: " . $L . "\n"; getreply; } print REMOTESITE "Quit\r\n"; getreply; #print <REMOTESITE>; close REMOTESITE; exit; # P sub hx { $N=$_[0];shift; $S=$_[0];shift; return "$N(" . unpack("h", $S) . ") "; } sub getreply { while ('x') { ($nfound,$timeleft) = select($rout=$rin, undef, $eout=$ein, $timeout); last if $nfound == 0; # print "nf($nfound) tl($timeleft) " . hx("rin",$rin) . hx("rout", $rout) . hx("ein",$ein) . hx("eout",$eout) . "\n"; $Reply= <REMOTESITE>; print "recv: " . $Reply; last if $Reply eq ''; $Reply =~ s/[\r\n]*//; last if $Reply eq '.'; } }