www.dr-lotz.de

Mails per Script von POP3 Server löschen

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.