View Javadoc

1   package com.ozacc.mail.fetch.impl;
2   
3   import com.ozacc.mail.MailException;
4   import com.ozacc.mail.fetch.FetchMail;
5   import com.ozacc.mail.fetch.ReceivedMail;
6   
7   /***
8    * <code>FetchMail</code>インターフェースの実装クラス。
9    * <p>
10   * <code>FetchMailProImpl</code>クラスに処理を委譲しています。
11   * 
12   * @since 1.2
13   * @see FetchMailProImpl
14   * 
15   * @author Tomohiro Otsuka
16   * @version $Id: FetchMailImpl.java,v 1.1.2.6 2005/01/29 22:33:40 otsuka Exp $
17   */
18  public class FetchMailImpl implements FetchMail {
19  
20  	/*** デフォルトのSMTPサーバ。「localhost」 */
21  	public static final String DEFAULT_HOST = "localhost";
22  
23  	/*** デフォルトのプロトコル。「pop3」 */
24  	public static final String DEFAULT_PROTOCOL = "pop3";
25  
26  	/***
27  	 * デフォルトのポート。「-1」<br>
28  	 * -1はプロトコルに応じた適切なポートを設定する特別な値。
29  	 */
30  	public static final int DEFAULT_PORT = -1;
31  
32  	private static final String INBOX_NAME = "INBOX";
33  
34  	private String host = DEFAULT_HOST;
35  
36  	private String protocol = DEFAULT_PROTOCOL;
37  
38  	private int port = DEFAULT_PORT;
39  
40  	private String username;
41  
42  	private String password;
43  
44  	/***
45  	 * コンストラクタ。
46  	 */
47  	public FetchMailImpl() {}
48  
49  	/***
50  	 * @see com.ozacc.mail.fetch.FetchMail#getMails()
51  	 */
52  	public ReceivedMail[] getMails() throws MailException {
53  		return getMails(false);
54  	}
55  
56  	/***
57  	 * @see com.ozacc.mail.fetch.FetchMail#getMails(boolean)
58  	 */
59  	public ReceivedMail[] getMails(boolean delete) throws MailException {
60  		FetchMailProImpl fetchMailProImpl = createFetchMailProImpl();
61  		fetchMailProImpl.connect();
62  		try {
63  			return fetchMailProImpl.getMails(delete);
64  		} finally {
65  			fetchMailProImpl.disconnect();
66  		}
67  	}
68  
69  	/***
70  	 * サーバ情報をセットしたFetchMailProImplインスタンスを生成します。
71  	 * 
72  	 * @return サーバ情報をセットしたFetchMailProImplインスタンス
73  	 */
74  	private FetchMailProImpl createFetchMailProImpl() {
75  		FetchMailProImpl fmp = new FetchMailProImpl();
76  		fmp.setHost(host);
77  		fmp.setPort(port);
78  		fmp.setProtocol(protocol);
79  		fmp.setUsername(username);
80  		fmp.setPassword(password);
81  		return fmp;
82  	}
83  
84  	/***
85  	 * メールサーバのホスト名、またはIPアドレスをセットします。
86  	 * デフォルトは localhost です。
87  	 * 
88  	 * @param host メールサーバのホスト名、またはIPアドレス
89  	 */
90  	public void setHost(String host) {
91  		this.host = host;
92  	}
93  
94  	/***
95  	 * メールサーバの認証パスワード名をセットします。
96  	 * 
97  	 * @param password メールサーバの認証パスワード
98  	 */
99  	public void setPassword(String password) {
100 		this.password = password;
101 	}
102 
103 	/***
104 	 * メール受信に使用するポート番号をセットします。
105 	 * プロトコルに応じたポート番号が自動的に使用されますので、通常ここでポート番号をセットする必要はありません。
106 	 * 
107 	 * @param port ポート番号
108 	 */
109 	public void setPort(int port) {
110 		this.port = port;
111 	}
112 
113 	/***
114 	 * メール受信に使用するプロトコロルをセットします。
115 	 * 現在サポートされているプロトコルは、「pop3」と「imap」の二つです。
116 	 * デフォルトは「pop3」です。
117 	 * <p>
118 	 * POP3サーバへの認証をAPOPで行いたい場合は、プロトコル名ではありませんが、
119 	 * 「apop」を指定してください。APOP認証を使用するには、JavaMail 1.3.2以降が必要です。
120 	 * 
121 	 * @param protocol プロトコル
122 	 */
123 	public void setProtocol(String protocol) {
124 		this.protocol = protocol;
125 	}
126 
127 	/***
128 	 * メールサーバの認証ユーザ名をセットします。
129 	 * 
130 	 * @param username メールサーバの認証ユーザ名
131 	 */
132 	public void setUsername(String username) {
133 		this.username = username;
134 	}
135 
136 	/***
137 	 * メールサーバのホスト名、またはIPアドレスを返します。
138 	 * 
139 	 * @return メールサーバのホスト名、またはIPアドレス
140 	 */
141 	public String getHost() {
142 		return host;
143 	}
144 
145 	/***
146 	 * メールサーバの認証パスワードを返します。
147 	 * 
148 	 * @return メールサーバの認証パスワード
149 	 */
150 	public String getPassword() {
151 		return password;
152 	}
153 
154 	/***
155 	 * @return ポート番号
156 	 */
157 	public int getPort() {
158 		return port;
159 	}
160 
161 	/***
162 	 * メール受信に使用するプロトコロルをセットします。
163 	 * 
164 	 * @return プロトコル
165 	 */
166 	public String getProtocol() {
167 		return protocol;
168 	}
169 
170 	/***
171 	 * メールサーバの認証ユーザ名を返します。
172 	 * 
173 	 * @return メールサーバの認証ユーザ名
174 	 */
175 	public String getUsername() {
176 		return username;
177 	}
178 }