/**
* @see org.columba.mail.spam.ISpamPlugin#trainMessageAsHam(org.columba.mail.folder.IMailbox,
* java.lang.Object)
*/
/**
* @see org.columba.mail.spam.ISpamPlugin#trainMessageAsSpam(org.columba.mail.folder.IMailbox,
* java.lang.Object)
*/
public void [[#variablef352240]](IMailbox mailbox, Object uid) throws Exception {
// get inputstream of message body
InputStream istream = CommandHelper.getBodyPart(mailbox, uid);
// get headers
Header h = mailbox.getHeaderFields(uid, Message.HEADERFIELDS);
// put headers in list
Enumeration e = h.getKeys();
List list = new ArrayList();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
list.add(h.get(key));
}
// load database from file
load();
try {
CloneStreamMaster master = new CloneStreamMaster(istream);
InputStream inputStream = master.getClone();
byte[] md5sum = MD5SumHelper.createMD5(inputStream);
// close stream
inputStream.close();
// get new inputstream
inputStream = master.getClone();
Message message = new Message(inputStream, list, md5sum);
// check if this message was already learned
// -> only add if this is not the case
if (db.MD5SumExists(md5sum)) {
// message already exists
// --> correct token data
filter. [[#variablef3521e0]](message);
}
else {
// new message
filter. [[#variablef352240]](message);
}
// close stream
inputStream.close();
// set dirty flag
hasChanged = true;
}
catch (IOException
e1) {
LOG.severe(e1.getMessage());
if (Logging.DEBUG)
e1.printStackTrace();
}
catch (NoSuchAlgorithmException
nsae) {
} // does not occur
}
|