Adapt to changes in Argeo TP
[gpl/argeo-suite.git] / org.argeo.app.core / src / org / argeo / app / mail / EmailUtils.java
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 (file)
index 694c17c..0000000
+++ /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() : "<N/A>";
-               } 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() {
-       }
-}