/sitebricks-mail/src/main/java/com/google/sitebricks/mail/Mail.java

http://github.com/dhanji/sitebricks · Java · 31 lines · 18 code · 10 blank · 3 comment · 0 complexity · dbc38f17659173195439373db048e09b MD5 · raw file

  1. package com.google.sitebricks.mail;
  2. import com.google.inject.ImplementedBy;
  3. import com.google.sitebricks.mail.oauth.OAuth2Config;
  4. import com.google.sitebricks.mail.oauth.OAuthConfig;
  5. import java.util.concurrent.ExecutorService;
  6. import java.util.concurrent.TimeUnit;
  7. /**
  8. * @author dhanji@gmail.com (Dhanji R. Prasanna)
  9. */
  10. @ImplementedBy(SitebricksMail.class)
  11. public interface Mail {
  12. AuthBuilder clientOf(String host, int port);
  13. public enum Auth { PLAIN, SSL, OAUTH, OAUTH2 }
  14. public static interface AuthBuilder {
  15. AuthBuilder timeout(long amount, TimeUnit unit);
  16. AuthBuilder executors(ExecutorService bossPool, ExecutorService workerPool);
  17. MailClient prepare(Auth authType, String username, String password);
  18. MailClient prepareOAuth(String username, OAuthConfig config);
  19. MailClient prepareOAuth2(String username, OAuth2Config config);
  20. }
  21. }