System: SuSE Linux 7.3
#!/bin/bash
# Zweck dieses Skripts ist es, mails von einem Account
# zu löschen, der einzig als Spam-Mülltonne existiert,
# ohne dass sie vorher Übertragen werden müssen.
# Öffnen der Verbindung:
exec 3<> /dev/tcp/pop3server/110
# Abfragen des pop3-accounts:
echo -e "user username\npass passwort\nquit" >&3
# Ergebnis auslesen und Zahl der Mails in Variable schreiben
# (Diese Zeile ist abhängig vom Format der Antwort des pop-Servers.)
NACHRICHTEN=$(cat <&3 | sed -n -e '/username has/p' | cut -d\ -f 4)
# Debug echo nachrichten $NACHRICHTEN
# Wenn keine Nachrichten da sind, muss nichts weiter passieren.
test $NACHRICHTEN -eq 0 && exit 0
# while-Teil - Abhängig von der Zahl der vorhandenen Mails
# wird eine Kommandozeile zusammengebastelt:
COUNTER=1
KOMMANDO='user username\npass passwort\n'
while test $COUNTER -le $NACHRICHTEN
do
KOMMANDO="${KOMMANDO}dele $COUNTER\\n"
COUNTER=$(expr $COUNTER + 1 )
done
# Der endgültige Befehl braucht noch ein quit am Ende:
KOMMANDO="${KOMMANDO}quit"
# Debug echo $KOMMANDO
# Erneuter Verbindungsaufbau, um die vorhandenen Mails zu löschen.
# Gleiches System wie oben.
exec 3<> /dev/tcp/pop3server/110
echo -e $KOMMANDO >&3
# Diese Zeile brauchts, sonst hängt das Skript
cat <&3 > /dev/null
# Und damit ich erfahre, wenn jemand an die Adresse was gemailt hat:
logger Es wurden $NACHRICHTEN Nachrichten an username@domain.de geloescht.