diff --git a/apps/susimail/src/src/i2p/susi/webmail/Mail.java b/apps/susimail/src/src/i2p/susi/webmail/Mail.java index 79bd287cb7dc7688d44382372bb5d1513fad769a..0d3c231276f24f3ddb73bff9a4e806dc2c603263 100644 --- a/apps/susimail/src/src/i2p/susi/webmail/Mail.java +++ b/apps/susimail/src/src/i2p/susi/webmail/Mail.java @@ -69,6 +69,7 @@ class Mail { private ReadBuffer header, body; private MailPart part; String[] to, cc; // addresses only, enclosed by <> + private boolean isNew, isSpam; public String error; @@ -141,6 +142,18 @@ class Mail { this.size = size; } + public boolean isSpam() { + return isSpam; + } + + public boolean isNew() { + return isNew; + } + + public void setNew(boolean isNew) { + this.isNew = isNew; + } + /** * * @param address E-mail address to be validated @@ -332,6 +345,9 @@ class Mail { ArrayList<String> list = new ArrayList<String>(); getRecipientsFromList( list, line.substring( 3 ).trim(), true ); cc = list.toArray(new String[list.size()]); + } else if(line.equals( "X-Spam-Flag: YES" )) { + // TODO trust.spam.headers config + isSpam = true; } } } diff --git a/apps/susimail/src/src/i2p/susi/webmail/MailCache.java b/apps/susimail/src/src/i2p/susi/webmail/MailCache.java index 17fef14b2788b92a1d8c3bd7c87526b5bb4954c5..e79c5c797d75df90b2464e65cb318ad564ae75cf 100644 --- a/apps/susimail/src/src/i2p/susi/webmail/MailCache.java +++ b/apps/susimail/src/src/i2p/susi/webmail/MailCache.java @@ -227,6 +227,8 @@ class MailCache { ReadBuffer rb = pr.buf; if (rb != null) { Mail mail = pr.mail; + if (!mail.hasHeader()) + mail.setNew(true); if (pr.getHeaderOnly()) { mail.setHeader(rb); } else { diff --git a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java index 6ca5206232231cd81c0225a1a55b5de201bf43e1..babeffbcf599ebdaf123cf1228524b036bdded34 100644 --- a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java +++ b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java @@ -1916,9 +1916,18 @@ public class WebMail extends HttpServlet for( Iterator<String> it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) { String uidl = it.next(); Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FETCH_HEADER ); - if (mail == null) + if (mail == null) { + i++; continue; - String link = "<a href=\"" + myself + "?" + SHOW + "=" + i + "\">"; + } + String type; + if (mail.isSpam()) + type = "linkspam"; + else if (mail.isNew()) + type = "linknew"; + else + type = "linkold"; + String link = "<a href=\"" + myself + "?" + SHOW + "=" + i + "\" class=\"" + type + "\">"; boolean idChecked = false; String checkId = sessionObject.pageChanged ? null : request.getParameter( "check" + i ); @@ -2001,6 +2010,7 @@ public class WebMail extends HttpServlet ":</td><td align=\"left\">" + mail.quotedDate + "</td></tr>\n" + "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>" ); if( mail.hasPart()) { + mail.setNew(false); showPart( out, mail.getPart(), 0, SHOW_HTML ); } else { diff --git a/installer/resources/themes/susimail/light/susimail.css b/installer/resources/themes/susimail/light/susimail.css index 9094966cf11778b6367906946f2dbed1b01521e3..94634134f6a8672140f6e55e7f952ca16fba933b 100644 --- a/installer/resources/themes/susimail/light/susimail.css +++ b/installer/resources/themes/susimail/light/susimail.css @@ -87,6 +87,18 @@ a { font-weight: bold; } +a.linkspam { + color:#927B40; +} + +a.linknew { + color:#327B40; +} + +a.linkold { + color:#327BBF; +} + a:hover { text-decoration:underline; }