--- /dev/null
+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);
+ }
+ }
+}