/usr/share/doc/fetchmail/contrib/poptest is in fetchmail 6.3.26-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | #!/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 '.';
}
}
|