X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.app.core%2Fsrc%2Forg%2Fargeo%2Fapp%2Fmail%2FEmailUtils.java;fp=org.argeo.app.core%2Fsrc%2Forg%2Fargeo%2Fapp%2Fmail%2FEmailUtils.java;h=0000000000000000000000000000000000000000;hp=694c17c6000e4619765c318448e176c895653d60;hb=d7da00bfd0ae230b97abccb2cc9d091e34c11632;hpb=26edd36fbbd565d7459a134a20a9c60d489dbb35 diff --git a/org.argeo.app.core/src/org/argeo/app/mail/EmailUtils.java b/org.argeo.app.core/src/org/argeo/app/mail/EmailUtils.java deleted file mode 100644 index 694c17c..0000000 --- a/org.argeo.app.core/src/org/argeo/app/mail/EmailUtils.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.argeo.app.mail; - -import java.util.Date; - -import javax.mail.Address; -import javax.mail.Flags; -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; - -/** Utilities around emails. */ -public class EmailUtils { - public final static String INBOX = "Inbox"; - public final static String INBOX_UPPER_CASE = "INBOX"; - public final static String MESSAGE_ID = "Message-ID"; - - public static String getMessageId(Message msg) { - try { - return msg instanceof MimeMessage ? ((MimeMessage) msg).getMessageID() : ""; - } catch (MessagingException e) { - throw new IllegalStateException("Cannot extract message id from " + msg, e); - } - } - - public static String describe(Message msg) { - try { - return "Message " + msg.getMessageNumber() + " " + msg.getSentDate().toInstant() + " " + getMessageId(msg); - } catch (MessagingException e) { - throw new IllegalStateException("Cannot describe " + msg, e); - } - } - - static void setHeadersFromFlags(MimeMessage msg, Flags flags) { - try { - StringBuilder status = new StringBuilder(); - if (flags.contains(Flags.Flag.SEEN)) - status.append('R'); - if (!flags.contains(Flags.Flag.RECENT)) - status.append('O'); - if (status.length() > 0) - msg.setHeader("Status", status.toString()); - else - msg.removeHeader("Status"); - - boolean sims = false; - String s = msg.getHeader("X-Status", null); - // is it a SIMS 2.0 format X-Status header? - sims = s != null && s.length() == 4 && s.indexOf('$') >= 0; - //status.setLength(0); - if (flags.contains(Flags.Flag.DELETED)) - status.append('D'); - else if (sims) - status.append('$'); - if (flags.contains(Flags.Flag.FLAGGED)) - status.append('F'); - else if (sims) - status.append('$'); - if (flags.contains(Flags.Flag.ANSWERED)) - status.append('A'); - else if (sims) - status.append('$'); - if (flags.contains(Flags.Flag.DRAFT)) - status.append('T'); - else if (sims) - status.append('$'); - if (status.length() > 0) - msg.setHeader("X-Status", status.toString()); - else - msg.removeHeader("X-Status"); - - String[] userFlags = flags.getUserFlags(); - if (userFlags.length > 0) { - status.setLength(0); - for (int i = 0; i < userFlags.length; i++) - status.append(userFlags[i]).append(' '); - status.setLength(status.length() - 1); // smash trailing space - msg.setHeader("X-Keywords", status.toString()); - } - if (flags.contains(Flags.Flag.DELETED)) { - s = msg.getHeader("X-Dt-Delete-Time", null); - if (s == null) - // XXX - should be time - msg.setHeader("X-Dt-Delete-Time", "1"); - } - } catch (MessagingException e) { - // ignore it - } - } - - protected static String getUnixFrom(MimeMessage msg) { - Address[] afrom; - String from; - Date ddate; - String date; - try { - if ((afrom = msg.getFrom()) == null || - !(afrom[0] instanceof InternetAddress) || - (from = ((InternetAddress)afrom[0]).getAddress()) == null) - from = "UNKNOWN"; - if ((ddate = msg.getReceivedDate()) == null || - (ddate = msg.getSentDate()) == null) - ddate = new Date(); - } catch (MessagingException e) { - from = "UNKNOWN"; - ddate = new Date(); - } - date = ddate.toString(); - // date is of the form "Sat Aug 12 02:30:00 PDT 1995" - // need to strip out the timezone - return "From " + from + " " + - date.substring(0, 20) + date.substring(24); - } - - /** Singleton. */ - private EmailUtils() { - } -}