summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2011-01-29 16:08:47 +0100
committerMatěj Cepl <mcepl@redhat.com>2011-01-29 16:08:47 +0100
commit75566e1d078f6352c951196071b7d59f2f3b64bf (patch)
treea68ab002b514bf716cdbfa42fe851a382df09e0c
downloadimap-folder-training-75566e1d078f6352c951196071b7d59f2f3b64bf.tar.gz
Original first draft of the script
-rwxr-xr-xtrain_dspam_from_folder29
1 files changed, 29 insertions, 0 deletions
diff --git a/train_dspam_from_folder b/train_dspam_from_folder
new file mode 100755
index 0000000..df12433
--- /dev/null
+++ b/train_dspam_from_folder
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+import imaplib, subprocess, sys, email, os
+cmd_string = "/usr/bin/dspam --user dspam --class=spam --source=error " \
+ + "--deliver=summary --stdout --signature='%s' --debug"
+
+client = imaplib.IMAP4_SSL("luther.ceplovi.cz")
+client.login("dspam","hnus")
+client.select("Public folders/Junk")
+status, resp = client.search(None, "ALL")
+messages = resp[0].split()
+
+for msg in messages:
+ typ, msg_data = client.fetch(msg, '(RFC822)')
+ for response_part in msg_data:
+ if isinstance(response_part, tuple):
+ message = email.message_from_string(response_part[1])
+ for header in [ 'subject', 'x-dspam-signature', 'from' ]:
+ print '%-8s: %s' \
+ % (header.upper(), message[header])
+ ret = subprocess.Popen(cmd_string \
+ % message['x-dspam-signature'], shell=True).wait()
+ if ret == 0:
+ typ, response = client.store(msg, '+FLAGS', r'(\Deleted)')
+ else:
+ raise OSError, "dspam finished with failure code: %d" % ret
+
+client.expunge()
+client.close()
+client.logout()