1   
2   package com.atlassian.mail.server;
3   
4   import alt.javax.mail.Session;
5   import com.atlassian.mail.MailException;
6   import com.atlassian.mail.MailProtocol;
7   
8   import javax.naming.NamingException;
9   import java.util.Properties;
10  
11  public interface MailServer
12  {
13      Long getId();
14  
15      String getName();
16  
17      String getDescription();
18  
19      String getType();
20  
21      String getPort();
22  
23      MailProtocol getMailProtocol();
24  
25      String getHostname();
26  
27      String getUsername();
28  
29      String getPassword();
30  
31      long getTimeout();
32  
33      boolean getDebug();
34  
35      Session getSession() throws NamingException, MailException;
36  
37      void setName(String name);
38  
39      void setDescription(String description);
40  
41      void setHostname(String hostname);
42  
43      void setUsername(String username);
44  
45      void setPassword(String password);
46  
47      void setId(Long id);
48  
49      void setPort(String port);
50  
51      void setMailProtocol(MailProtocol protocol);
52  
53      void setTimeout(long timeout);
54  
55      void setDebug(boolean debug);
56  
57      void setProperties(Properties props);
58  
59      /**
60       *
61       * @return the set of dynamic properties applied to thsi server, may very wel be null
62       * in which case the mail server properties can be obtained from the session
63       */
64      Properties getProperties();
65  }