added GMail
authoradam <adam@megacz.com>
Mon, 16 Aug 2004 02:00:18 +0000 (02:00 +0000)
committeradam <adam@megacz.com>
Mon, 16 Aug 2004 02:00:18 +0000 (02:00 +0000)
darcs-hash:20040816020018-5007d-d7e244e1cee20d1287eef34f572e3f50198b17ce.gz

src/org/ibex/mail/protocol/GMail.java [new file with mode: 0644]

diff --git a/src/org/ibex/mail/protocol/GMail.java b/src/org/ibex/mail/protocol/GMail.java
new file mode 100644 (file)
index 0000000..058f821
--- /dev/null
@@ -0,0 +1,44 @@
+package org.ibex.mail.protocol;
+import org.ibex.io.*;
+import org.ibex.crypto.*;
+import org.ibex.jinetd.Listener;
+import org.ibex.jinetd.Worker;
+import org.ibex.mail.*;
+import org.ibex.util.*;
+import org.ibex.mail.target.*;
+import java.util.*;
+import java.net.*;
+import java.text.*;
+import java.io.*;
+
+public class GMail extends Account {
+    public Mailbox getMailbox(Class protocol) { return this.root; }
+    public GMail(String user, String pass) {
+        super(user, Address.parse(user + "@gmail.com"));
+        Log.warn(GMail.class, "logging in " + user + "@gmail.com...");
+        try {
+            Process p =
+                Runtime.getRuntime().exec(new String[] {
+                    "/usr/bin/python",
+                    "/usr/local/libgmail/demos/archive.py",
+                    user,
+                    pass
+                    });
+            final Mailbox inbox = new MessageArrayMailbox(Mbox.parse(new Stream(p.getInputStream())));
+            this.root =
+                new Mailbox.Default() {
+                        public void add(Message m) { throw new RuntimeException("not supported"); }
+                        public void add(Message m, int i) { throw new RuntimeException("not supported"); }
+                        public int              uidValidity()  { return 1; }
+                        public Mailbox.Iterator iterator()     { return new Mailbox.Iterator.NullIterator(); }
+                        public int              uidNext()      { return 500; }
+                        public String[] children() { return new String[] { "gmail" }; }
+                        public Mailbox slash(String name, boolean create) { return inbox; }
+                    };
+            p.waitFor();
+            Log.warn(GMail.class, "    succeeded for " + user + "@gmail.com!");
+        } catch (Exception e) {
+            Log.error(GMail.class, e);
+        }
+    }
+}