--- /dev/null
+package org.ibex.mail;
+import org.ibex.mail.target.*;
+
+public class Account {
+
+ public final String user;
+ public final Address address;
+
+ private final Mailbox root;
+ public Mailbox getMailbox(Class protocol) { return this.root; }
+
+ public Account(String user, Address address, Mailbox root) { this.user = user; this.address = address; this.root = root; }
+
+}
--- /dev/null
+package org.ibex.mail;
+
+// FEATURE: SASL
+
+/** essentially a partial function from username/password/protocol to root mailbox */
+public interface Login {
+
+ public Account anonymous();
+ public Account login(String user, String pass);
+
+}