+++ /dev/null
-#!/usr/bin/expect -f
-
-# MySQL database connection settings
-set CRDB_host localhost
-set CRDB_DB test
-set CRDB_username root
-set CRDB_password root
-
-# set eiter one to 1 for verbose output
-log_user 0
-set comments 0
-
-package require mysqltcl
-
-# connect to MySQL database
-set handle [::mysql::connect -host $CRDB_host -user $CRDB_username -password $CRDB_password]
-
-# get server/usernames to clean up
-set userlist [::mysql::sel $handle "SELECT UserID, server, username, password, retaindays from $CRDB_DB.fetchmail_user" -flatlist]
-
-# loop through all users in database
-foreach {userid server username password days} $userlist {
- if {$comments==1} { send_user "\r\nWorking on accound #$userid\r\n*******************************\r\n" }
- eval spawn telnet -l fetchmail_cleanup $server 110
- expect "ready"
- send "USER $username\r"
- expect "password"
- send "PASS $password\r"
- expect "OK"
- send "STAT\r"
- expect "+OK "
- expect -re "\[0-9]* "
- set anz $expect_out(0,string)
- if {$comments==1} { send_user "message count: $anz \r\n" }
- set i 0
- while { $i < $anz } {
- incr i
- send "UIDL $i\r"
- expect -re "\\\+OK $i \(.*\)\r"
- set uid $expect_out(1,string)
- ::mysql::exec $handle "insert ignore into $CRDB_DB.fetchmail values ($userid,'$uid',now());"
- set age [::mysql::sel $handle "SELECT DATEDIFF(now(),Fetchdate) from $CRDB_DB.fetchmail where UserID=$userid and UID='$uid'" -list]
- if {$comments==1} { send_user "Message #$i: UID: $uid , age: $age \r\n" }
- if {$age > $days} {
- send "DELE $i\r"
- expect "deleted"
- if {$comments==1} { send_user "Message $i deleted.\r\n" }
- }
- }
- send "quit\r"
- expect "signing off"
- ::mysql::exec $handle "delete from $CRDB_DB.fetchmail where DATEDIFF(now(),Fetchdate)>($days*2) and UserID=$userid;"
-}
-::mysql::close $handle
-exit
-