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 }