?? mailuser.java
字號:
package ch08.section02;
import javax.mail.*;
import javax.servlet.http.*;
public class MailUser
implements HttpSessionBindingListener {
Session m_session;
boolean m_loggedIn;
Store m_store;
Folder m_inbox;
String m_storeProtocol;
String m_storeHost;
String m_transportProtocol;
String m_transportHost;
String m_user;
String m_fromName;
public MailUser() {
java.util.Properties props = System.getProperties();
m_session = Session.getDefaultInstance(props, null);
}
public Session getSession() {
return m_session;
}
public Folder getInbox() {
return m_inbox;
}
public boolean isLoggedIn() {
return m_loggedIn;
}
public String getStoreProtocol() {
return m_storeProtocol;
}
public String getStoreHost() {
return m_storeHost;
}
public String getTransportProtocol() {
return m_transportProtocol;
}
public String getTransportHost() {
return m_transportHost;
}
public String getUser() {
return m_user;
}
public void setFromName(String name) {
m_fromName = name;
}
public String getFromName() {
return m_fromName;
}
public String[] getTransportNames() {
return getProtocolNames(Provider.Type.TRANSPORT);
}
public String[] getStoreNames() {
return getProtocolNames(Provider.Type.STORE);
}
public void login(String store, String storeHost,
String transport, String transportHost,
String user, String password) throws MessagingException {
try {
close();
java.util.Properties props = System.getProperties();
props.put("mail.host", storeHost);
m_session = Session.getDefaultInstance(props, null);
URLName url = new URLName(store, storeHost, -1,
"INBOX", user, password);
m_store = m_session.getStore(url);
m_store.connect();
m_inbox = m_store.getFolder("INBOX");
m_inbox.open(Folder.READ_WRITE);
m_storeProtocol = store;
m_storeHost = storeHost;
m_transportProtocol = transport;
m_transportHost = transportHost;
m_user = user;
m_loggedIn = true;
}
finally {
if (!m_loggedIn) {
if (m_store != null) {
m_store.close();
m_store = null;
}
}
}
}
protected String[] getProtocolNames(Provider.Type type) {
java.util.Vector v = new java.util.Vector();
Provider p[] = m_session.getProviders();
if (p != null) {
for (int i = 0; i < p.length; i++) {
if (p[i].getType() == type) {
v.addElement(p[i]);
}
}
}
String s[] = new String[v.size()];
for (int i = 0; i < v.size(); i++) {
Provider prov = (Provider) v.elementAt(i);
s[i] = prov.getProtocol();
}
return s;
}
public void valueBound(HttpSessionBindingEvent event) {
}
public void valueUnbound(HttpSessionBindingEvent event) {
close();
}
public void close() {
m_loggedIn = false;
try {
if (m_inbox != null) {
m_inbox.close(true);
}
if (m_store != null) {
m_store.close();
}
}
catch (MessagingException ex) {
}
m_inbox = null;
m_store = null;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -