01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //limitations under the License.
10: //
11: //The Original Code is "The Columba Project"
12: //
13: //The Initial Developers of the Original Code are Frederik Dietz and Timo
14: // Stich.
15: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16: //
17: //All Rights Reserved.
18: package org.columba.mail.spam.rules;
19:
20: import java.util.Iterator;
21:
22: import org.columba.mail.folder.IMailbox;
23: import org.columba.ristretto.message.MimeHeader;
24: import org.columba.ristretto.message.MimePart;
25: import org.columba.ristretto.message.MimeTree;
26: import org.columba.ristretto.message.MimeType;
27:
28: /**
29: * Check if message contains only HTML mimeparts.
30: *
31: * @author fdietz
32: */
33: public class OnlyHTMLMimepartRule extends AbstractRule {
34:
35: public OnlyHTMLMimepartRule() {
36: super ("OnlyHTMLMimepartRule");
37:
38: }
39:
40: /**
41: * @see org.columba.mail.spam.rules.Rule#score(IMailbox,
42: * java.lang.Object)
43: */
44: public float score(IMailbox folder, Object uid) throws Exception {
45: MimeTree tree = folder.getMimePartTree(uid);
46:
47: Iterator it = tree.getAllLeafs().iterator();
48: boolean onlyHTML = true;
49: while (it.hasNext()) {
50: MimePart mp = (MimePart) it.next();
51: MimeHeader header = mp.getHeader();
52: MimeType mimetype = header.getMimeType();
53:
54: if ((mimetype.getType().equals("text"))
55: && (mimetype.getSubtype().equals("html"))) {
56:
57: } else {
58: onlyHTML = false;
59: }
60: }
61:
62: if (onlyHTML)
63: return MAX_PROBABILITY;
64:
65: return NEARLY_ZERO;
66: }
67:
68: }
|