####[ How-Do-I Documents ]######################################
Sub : Clearing blocked mails from POP3 servers
How-Do-I retreive and clear blocked mails from POP3 servers ?
################################################################
1 Introduction
1.1 Ever been stuck up in a situation where there are some
mails stuck up in your POP3 server, which cannot be re-
trieved or deleted from the server after download with
software like fetchmail, and does not auto-delete (even
if set) on its own ?
1.2 How do you know that mail is stuck up ? A normal fetch-
mail session configured for deletion after retreival
may turn up something like this:
bish@aedes:~$fetchmail nde.vsnl.net.in
25 messages (12 seen) for bish at nde.vsnl.net.in (236487 octets).
skipping message 1 not flushed
skipping message 2 not flushed
skipping message 3 not flushed
<...snipped...>
skipping message 10 not flushed
skipping message 11 not flushed
skipping message 12 not flushed
reading message 13 of 25 (3512 octets) ... flushed
reading message 14 of 25 (5483 octets) ..... flushed
reading message 15 of 25 (1474 octets) . flushed
<...rest snipped...>
1.3 Note, messages 1 - 12 ( of which only three has been
shown above) have been "skipped" and therefore not down
loaded at all. This is because of some problem at the
POP3 server level, and you need to force retreival and
deletion. At times such problems arise if the mail is
really large.
2 Retreiving blocked mails
2.1 Once you get the "seen" message, notmal POP3 retreival
methods through fetchmail or MUAs like netscape do not
work. You can however, telnet into the server and view
the message. Since you cannot save to local medium once
the telnet session is on, you may like to capture the
full screen output locally with "script" running in the
background.
2.2 First set of capture of screen output with script, and
take the output to a file:
$script filename
2.3 Then telnet into the server.
$telnet pop.server.id 110 POP3 servers are usually
on port 110. May have to
change value if your ser-
ver uses something else
$user Enter the username that
you use to retrieve mail
$pass ... and the password
$stat This resets the current
status
$list gives chronological list-
ing of mails pending on
the server, along with
sizes.
$retr Retreive the mail by #no
2.4 You need to repeat the retr command for all the blocked
mails (in the case shown above from 1 to 12). Once this
is done, you need to delete them.
3 Deleting blocked mails
3.1 Deleting such mails from POP3 servers can be achieved
by telneting directly into the server and manually del-
eting it. Since you have already logged on to the POP3
server, you can start deleting from where you left off.
$list gives chronological list-
ing of mails pending on
the server, along with
sizes.
$dele Delete the mail by number
...... repeat above processes
$list Catalog again to check if
things worked.
$quit Terminate telnet session
when done
4 Finishing touches
4.1 Now you need to terminate the 'script' session which you
started with. Just type in "exit" once out of the telnet
session. The check the text file "filename" in any text
procerssor.
5 Automating the above (netcat)
5.1 Unfortunately, telnet itself is not a very friendly
tool, and does not lend itself to automation and scrip-
ting. Under such conditions, you may like to try out a
program called netcat.
#!/bin/sh
# Netcat source
wget -c -v http://www.l0pht.com/~weld/netcat/nc110.tgz
5.2 Netcat is a network debugging and exploration tool. Has
just one binary nc. The following script under nc would
work in the situation like shown above, where 12 mails
need to be brought from the POP3 server to the local
hard disk, and then deleted.
#! /bin/sh
( echo user my_login
echo pass my_password
echo stat
echo list
for i in 1 2 3 4 5 6 7 8 9 10 11 12;
do
echo retr $i
done
echo quit ) | nc -v -v pop.server.id > my_file.in
5.3 Deleting through a nc script is just as easy. Since no
file output is necessary, we can omit the last bit.
#! /bin/sh
( echo user my_login
echo pass my_password
echo stat
for i in 1 2 3 4 5 6 7 8 9 10 11 12;
do
echo dele $i
done
echo quit ) | nc -v -v pop.server.id
6 Tailpiece.
6.1 Life is really not that difficult, only if you knew how
You don't have to send mails to your ISP ever again for
blocked mails on their server !
6.2 Enjoy.
#################################################################
7 Kudos and Brickbats
7.1 This document is released under GFDL license. You are
free to use and distribute under freedom of the said
license
7.2 Any kudos and brickbats should be directed at:
USM Bish
28 Dec 2001