View Javadoc

1   package com.ozacc.mail;
2   
3   import java.io.UnsupportedEncodingException;
4   import java.util.ArrayList;
5   import java.util.Collections;
6   import java.util.HashMap;
7   import java.util.Iterator;
8   import java.util.List;
9   import java.util.Map;
10  
11  import javax.mail.internet.AddressException;
12  import javax.mail.internet.InternetAddress;
13  
14  /***
15   * ¥á¡¼¥?¡£
16   * 
17   * @author Tomohiro Otsuka
18   * @version $Id: Mail.java,v 1.4 2004/09/10 22:41:42 otsuka Exp $
19   */
20  public class Mail {
21  
22  	/*** <code>ISO-2022-JP</code> */
23  	public static final String JIS_CHARSET = "ISO-2022-JP";
24  
25  	private String charset = JIS_CHARSET;
26  
27  	private String text;
28  
29  	private InternetAddress from;
30  
31  	private String subject;
32  
33  	private List to;
34  
35  	private List cc;
36  
37  	private List bcc;
38  
39  	private InternetAddress returnPath;
40  
41  	private InternetAddress replyTo;
42  
43  	private String importance;
44  
45  	private Map xHeaders;
46  
47  	/***
48  	 * ¥³¥ó¥¹¥È¥é¥¯¥¿¡£
49  	 */
50  	public Mail() {}
51  
52  	/***
53  	 * ¥³¥ó¥¹¥È¥é¥¯¥¿¡£
54  	 * °¸Àè¤äº¹½Ð¿Í¤Î̾Á°¤ò¥¨¥ó¥³¡¼¥É¤¹¤?»?¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£
55  	 * ¥Ç¥Õ¥©¥?¥È¤Ï<code>ISO-2022-JP</code>¤Ç¤¹¡£
56  	 * <p>
57  	 * Æ?Ëܸ?´Ä¶­¤ÇÍøÍѤ¹¤?¾?¹ç¤ÏÄ̾?Êѹ¹¤¹¤?ɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
58  	 * 
59  	 * @param charset ¥¨¥ó¥³¡¼¥É¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É
60  	 */
61  	public Mail(String charset) {
62  		this();
63  		this.charset = charset;
64  	}
65  
66  	/***
67  	 * ¥¨¥ó¥³¡¼¥É¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£
68  	 * 
69  	 * @return ¥¨¥ó¥³¡¼¥É¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É
70  	 */
71  	public String getCharset() {
72  		return charset;
73  	}
74  
75  	/***
76  	 * ¥á¡¼¥?¤Î½ÅÍ×ÅÙ¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
77  	 * °ú¿ô¤Ç»ØÄ?²Äǽ¤ÊÃͤϡÖhigh¡×¡¢¡Önormal¡×¡¢¡Ölow¡×¤Î¤¤¤º¤?¤«¤Ç¤¹¡£
78  	 * 
79  	 * @param importance ¥á¡¼¥?¤Î½ÅÍ×ÅÙ¡£¡Öhigh¡×¡¢¡Önormal¡×¡¢¡Ölow¡×¤Î¤¤¤º¤?¤«¡£
80  	 * @throws IllegalArgumentException »ØÄ?²Äǽ¤ÊÃͰʳ°¤¬»ØÄꤵ¤?¤¿¾?¹?
81  	 * 
82  	 * @see Mail.Importance
83  	 */
84  	public void setImportance(String importance) throws IllegalArgumentException {
85  		if ("high".equals(importance) || "normal".equals(importance) || "low".equals(importance)) {
86  			this.importance = importance;
87  		} else {
88  			throw new IllegalArgumentException("'" + importance + "'¤Ï¡¢¥á¡¼¥?½ÅÍ×Å٤ˤϻØÄê¤Ç¤­¤Ê¤¤ÃͤǤ¹¡£");
89  		}
90  	}
91  
92  	/***
93  	 * ¥á¡¼¥?¤Î½ÅÍ×ÅÙ¤òÊÖ¤·¤Þ¤¹¡£
94  	 * ÃͤϡÖhigh¡×¡¢¡Önormal¡×¡¢¡Ölow¡×¤Î¤¤¤º¤?¤«¤Ç¤¹¡£
95  	 * 
96  	 * @return ¥á¡¼¥?¤Î½ÅÍ×ÅÙ¡£¡Öhigh¡×¡¢¡Önormal¡×¡¢¡Ölow¡×¤Î¤¤¤º¤?¤«¡£
97  	 */
98  	public String getImportance() {
99  		return importance;
100 	}
101 
102 	/***
103 	 * ¥á¡¼¥?¤ÎÁ÷¿®À襢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
104 	 * 
105 	 * @param address Á÷¿®À襢¥É¥?¥¹
106 	 */
107 	public void addTo(InternetAddress address) {
108 		if (to == null) {
109 			to = new ArrayList();
110 		}
111 		to.add(address);
112 	}
113 
114 	/***
115 	 * ¥á¡¼¥?¤ÎÁ÷¿®À襢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
116 	 * 
117 	 * @param email Á÷¿®À襢¥É¥?¥¹
118 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
119 	 */
120 	public void addTo(String email) throws IllegalArgumentException {
121 		try {
122 			addTo(new InternetAddress(email));
123 		} catch (AddressException e) {
124 			throw new IllegalArgumentException(e.getMessage());
125 		}
126 	}
127 
128 	/***
129 	 * ¥á¡¼¥?¤ÎÁ÷¿®Àè̾¤È¥¢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
130 	 * ̾Á°¤ÏJIS_CHARSET¤Ç¥¨¥ó¥³¡¼¥É¤µ¤?¤Þ¤¹¡£
131 	 * 
132 	 * @param email Á÷¿®À襢¥É¥?¥¹
133 	 * @param name Á÷¿®Àè̾
134 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
135 	 */
136 	public void addTo(String email, String name) throws IllegalArgumentException {
137 		try {
138 			addTo(new InternetAddress(email, name, charset));
139 		} catch (UnsupportedEncodingException e) {
140 			throw new IllegalArgumentException(e.getMessage());
141 		}
142 	}
143 
144 	/***
145 	 * ¥á¡¼¥?¤ÎÁ÷¿®À襢¥É¥?¥¹¤ÎÇÛÎó¤òÊÖ¤·¤Þ¤¹¡£
146 	 * Á÷¿®À襢¥É¥?¥¹¤¬°?·?¤â¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¶õ¤ÎÇÛÎó¤òÊÖ¤·¤Þ¤¹¡£
147 	 * 
148 	 * @return Á÷¿®À襢¥É¥?¥¹¤ÎÇÛÎ?
149 	 */
150 	public InternetAddress[] getTo() {
151 		if (to == null) {
152 			return new InternetAddress[0];
153 		}
154 		return (InternetAddress[])to.toArray(new InternetAddress[to.size()]);
155 	}
156 
157 	/***
158 	 * CC¥¢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
159 	 * 
160 	 * @param address CC¤Î¥¢¥É¥?¥¹
161 	 */
162 	public void addCc(InternetAddress address) {
163 		if (cc == null) {
164 			cc = new ArrayList();
165 		}
166 		cc.add(address);
167 	}
168 
169 	/***
170 	 * CC¥¢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
171 	 * 
172 	 * @param email CC¤Î¥¢¥É¥?¥¹
173 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
174 	 */
175 	public void addCc(String email) throws IllegalArgumentException {
176 		try {
177 			addCc(new InternetAddress(email));
178 		} catch (AddressException e) {
179 			throw new IllegalArgumentException(e.getMessage());
180 		}
181 	}
182 
183 	/***
184 	 * CC¤Î°¸Ì¾¤È¥¢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
185 	 * ̾Á°¤ÏJIS_CHARSET¤Ç¥¨¥ó¥³¡¼¥É¤µ¤?¤Þ¤¹¡£
186 	 * 
187 	 * @param email CC¤Î¥¢¥É¥?¥¹
188 	 * @param name CC¤Î°¸Ì¾
189 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
190 	 */
191 	public void addCc(String email, String name) throws IllegalArgumentException {
192 		try {
193 			addCc(new InternetAddress(email, name, charset));
194 		} catch (UnsupportedEncodingException e) {
195 			throw new IllegalArgumentException(e.getMessage());
196 		}
197 	}
198 
199 	/***
200 	 * ¥á¡¼¥?¤ÎCC¥¢¥É¥?¥¹ÇÛÎó¤òÊÖ¤·¤Þ¤¹¡£
201 	 * CC¥¢¥É¥?¥¹¤¬°?·?¤â¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¶õ¤ÎÇÛÎó¤òÊÖ¤·¤Þ¤¹¡£
202 	 * 
203 	 * @return CC¥¢¥É¥?¥¹¤ÎÇÛÎ?
204 	 */
205 	public InternetAddress[] getCc() {
206 		if (cc == null) {
207 			return new InternetAddress[0];
208 		}
209 		return (InternetAddress[])cc.toArray(new InternetAddress[cc.size()]);
210 	}
211 
212 	/***
213 	 * BCC¥¢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
214 	 * 
215 	 * @param address BCC¤Î¥¢¥É¥?¥¹
216 	 */
217 	public void addBcc(InternetAddress address) {
218 		if (bcc == null) {
219 			bcc = new ArrayList();
220 		}
221 		bcc.add(address);
222 	}
223 
224 	/***
225 	 * BCC¥¢¥É¥?¥¹¤òÄɲä·¤Þ¤¹¡£
226 	 * 
227 	 * @param email BCC¤Î¥¢¥É¥?¥¹
228 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
229 	 */
230 	public void addBcc(String email) throws IllegalArgumentException {
231 		try {
232 			addBcc(new InternetAddress(email));
233 		} catch (AddressException e) {
234 			throw new IllegalArgumentException(e.getMessage());
235 		}
236 	}
237 
238 	/***
239 	 * ¥á¡¼¥?¤ÎBCC¥¢¥É¥?¥¹¤ÎÇÛÎó¤òÊÖ¤·¤Þ¤¹¡£
240 	 * BCC¥¢¥É¥?¥¹¤¬°?·?¤â¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¶õ¤ÎÇÛÎó¤òÊÖ¤·¤Þ¤¹¡£
241 	 * 
242 	 * @return BCC¥¢¥É¥?¥¹¤ÎÇÛÎ?
243 	 */
244 	public InternetAddress[] getBcc() {
245 		if (bcc == null) {
246 			return new InternetAddress[0];
247 		}
248 		return (InternetAddress[])bcc.toArray(new InternetAddress[bcc.size()]);
249 	}
250 
251 	/***
252 	 * ¥á¡¼¥?¤Îº¹½Ð¿Í¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
253 	 * 
254 	 * @param address º¹½Ð¿Í¥¢¥É¥?¥¹
255 	 */
256 	public void setFrom(InternetAddress address) {
257 		from = address;
258 	}
259 
260 	/***
261 	 * ¥á¡¼¥?¤Îº¹½Ð¿Í¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
262 	 * 
263 	 * @param email º¹½Ð¿Í¥¢¥É¥?¥¹
264 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
265 	 */
266 	public void setFrom(String email) throws IllegalArgumentException {
267 		try {
268 			setFrom(new InternetAddress(email));
269 		} catch (AddressException e) {
270 			throw new IllegalArgumentException(e.getMessage());
271 		}
272 	}
273 
274 	/***
275 	 * ¥á¡¼¥?¤Îº¹½Ð¿Í̾¤È¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
276 	 * ̾Á°¤ÏJIS_CHARSET¤Ç¥¨¥ó¥³¡¼¥É¤µ¤?¤Þ¤¹¡£
277 	 * 
278 	 * @param email º¹½Ð¿Í¥¢¥É¥?¥¹
279 	 * @param name º¹½Ð¿Í̾
280 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
281 	 */
282 	public void setFrom(String email, String name) throws IllegalArgumentException {
283 		try {
284 			setFrom(new InternetAddress(email, name, charset));
285 		} catch (UnsupportedEncodingException e) {
286 			throw new IllegalArgumentException(e.getMessage());
287 		}
288 	}
289 
290 	/***
291 	 * ¥á¡¼¥?¤Îº¹½Ð¿Í¥¢¥É¥?¥¹¤òÊÖ¤·¤Þ¤¹¡£¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¾?¹ç¤Ïnull¤òÊÖ¤·¤Þ¤¹¡£
292 	 * 
293 	 * @return ¥á¡¼¥?¤Îº¹½Ð¿Í¥¢¥É¥?¥¹
294 	 */
295 	public InternetAddress getFrom() {
296 		return from;
297 	}
298 
299 	/***
300 	 * Return-Path¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
301 	 * 
302 	 * @param address Return-Path¥¢¥É¥?¥¹
303 	 */
304 	public void setReturnPath(InternetAddress address) {
305 		returnPath = address;
306 	}
307 
308 	/***
309 	 * Return-Path¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
310 	 * 
311 	 * @param email Return-Path¥¢¥É¥?¥¹
312 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
313 	 */
314 	public void setReturnPath(String email) throws IllegalArgumentException {
315 		try {
316 			setReturnPath(new InternetAddress(email));
317 		} catch (AddressException e) {
318 			throw new IllegalArgumentException(e.getMessage());
319 		}
320 	}
321 
322 	/***
323 	 * Return-Path¥¢¥É¥?¥¹¤òÊÖ¤·¤Þ¤¹¡£
324 	 * 
325 	 * @return Return-Path¥¢¥É¥?¥¹
326 	 */
327 	public InternetAddress getReturnPath() {
328 		return returnPath;
329 	}
330 
331 	/***
332 	 * ÊÖ¿®À襢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
333 	 * 
334 	 * @param address ÊÖ¿®À襢¥É¥?¥¹
335 	 */
336 	public void setReplyTo(InternetAddress address) {
337 		replyTo = address;
338 	}
339 
340 	/***
341 	 * ÊÖ¿®À襢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
342 	 * 
343 	 * @param email ÊÖ¿®À襢¥É¥?¥¹
344 	 * @throws IllegalArgumentException ÉÔÀµ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¥É¥?¥¹¤¬»ØÄꤵ¤?¤¿¾?¹?
345 	 */
346 	public void setReplyTo(String email) throws IllegalArgumentException {
347 		try {
348 			setReplyTo(new InternetAddress(email));
349 		} catch (AddressException e) {
350 			throw new IllegalArgumentException(e.getMessage());
351 		}
352 	}
353 
354 	/***
355 	 * ¥á¡¼¥?¤ÎÊÖ¿®À襢¥É¥?¥¹¤òÊÖ¤·¤Þ¤¹¡£¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¾?¹ç¤Ïnull¤òÊÖ¤·¤Þ¤¹¡£
356 	 * 
357 	 * @return ÊÖ¿®À襢¥É¥?¥¹
358 	 */
359 	public InternetAddress getReplyTo() {
360 		return replyTo;
361 	}
362 
363 	/***
364 	 * ¥á¡¼¥?¤Î·?̾¤òÊÖ¤·¤Þ¤¹¡£¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¾?¹ç¤Ï¶õʸ»úÎó¤òÊÖ¤·¤Þ¤¹¡£
365 	 * 
366 	 * @return ¥á¡¼¥?¤Î·?̾
367 	 */
368 	public String getSubject() {
369 		if (subject == null) {
370 			return "";
371 		}
372 		return subject;
373 	}
374 
375 	/***
376 	 * ¥á¡¼¥?¤Î·?̾¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
377 	 * 
378 	 * @param subject ¥á¡¼¥?¤Î·?̾
379 	 */
380 	public void setSubject(String subject) {
381 		this.subject = subject;
382 	}
383 
384 	/***
385 	 * ¥á¡¼¥?ËÜʸ¤òÊÖ¤·¤Þ¤¹¡£
386 	 * ËÜʸ¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¾?¹ç¤Ï¶õʸ»úÎó¤òÊÖ¤·¤Þ¤¹¡£
387 	 * 
388 	 * @return ¥á¡¼¥?ËÜʸ
389 	 */
390 	public String getText() {
391 		if (text == null) {
392 			return "";
393 		}
394 		return text;
395 	}
396 
397 	/***
398 	 * ¥á¡¼¥?ËÜʸ¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
399 	 * 
400 	 * @param text ¥á¡¼¥?ËÜʸ
401 	 */
402 	public void setText(String text) {
403 		this.text = text;
404 	}
405 
406 	/***
407 	 * ¥á¡¼¥?¥Ø¥Ã¥À¤ËǤ°Õ¤Î¥Ø¥Ã¥À¤òÄɲä·¤Þ¤¹¡£
408 	 * Ǥ°Õ¥Ø¥Ã¥À¤Ï¡ÖX-key: value¡×¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¥á¡¼¥?¥Ø¥Ã¥À¤ËÁȤ߹?¤Þ¤?¤Þ¤¹¡£
409 	 *  
410 	 * @param key Ǥ°Õ¥Ø¥Ã¥À̾¡£Æ¬¤¬"X-"¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤±¤?¤Ð¡¢¼«Æ°Åª¤ËÉÕÍ¿¤µ¤?¤Þ¤¹¡£
411 	 * @param value Ǥ°Õ¥Ø¥Ã¥À¤ÎÃÍ
412 	 */
413 	public void addXHeader(String key, String value) {
414 		if (xHeaders == null) {
415 			xHeaders = new HashMap();
416 		}
417 		if (key.startsWith("X-")) {
418 			xHeaders.put(key, value);
419 		} else {
420 			xHeaders.put("X-" + key, value);
421 		}
422 	}
423 
424 	/***
425 	 * ¥á¡¼¥?¤ÎǤ°Õ¥Ø¥Ã¥À̾¤ÈÃͤÎMap¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£
426 	 * Ǥ°Õ¥Ø¥Ã¥À¤¬°?·?¤â¥»¥Ã¥È¤µ¤?¤Æ¤¤¤Ê¤¤¤È¤­¤Ïnull¤òÊÖ¤·¤Þ¤¹¡£
427 	 * <p>
428 	 * ¤³¤ÎMap¥¤¥ó¥¹¥¿¥ó¥¹¤Ø¤Î½¤Àµ¤Ï¤Ç¤­¤Þ¤»¤ó¡£(unmodifiableMap¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£)
429 	 * 
430 	 * @return ¥á¡¼¥?¤ÎǤ°Õ¥Ø¥Ã¥À̾¤ÈÃͤÎMap¥¤¥ó¥¹¥¿¥ó¥¹¡£¤Þ¤¿¤Ïnull¡£
431 	 */
432 	public Map getXHeaders() {
433 		if (xHeaders == null) {
434 			return null;
435 		}
436 		return Collections.unmodifiableMap(xHeaders);
437 	}
438 
439 	/***
440 	 * ¥á¡¼¥?ÆâÍÆ¤ò½ÐÎϤ·¤Þ¤¹¡£<br>
441 	 * ¥á¡¼¥?¤Î¥½¡¼¥¹¤Ë»÷¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤµ¤?¤Þ¤¹¡£
442 	 * 
443 	 * @see java.lang.Object#toString()
444 	 */
445 	public String toString() {
446 		StringBuffer buf = new StringBuffer(1000);
447 		buf.append("Mail\n");
448 		buf.append("Return-Path: ").append(returnPath).append("\n");
449 		buf.append("From: ").append(from != null ? from.toUnicodeString() : null).append("\n");
450 		buf.append("To: ").append(arrayToCommaDelimitedString(to)).append("\n");
451 		buf.append("Cc: ").append(arrayToCommaDelimitedString(cc)).append("\n");
452 		buf.append("Bcc: ").append(arrayToCommaDelimitedString(bcc)).append("\n");
453 		buf.append("Subject: ").append(subject).append("\n");
454 
455 		if (xHeaders != null) {
456 			for (Iterator itr = xHeaders.keySet().iterator(); itr.hasNext();) {
457 				String header = (String)itr.next();
458 				String value = (String)xHeaders.get(header);
459 				buf.append(header).append(": ").append(value).append("\n");
460 			}
461 		}
462 
463 		buf.append("\n");
464 		buf.append(text);
465 
466 		return buf.toString();
467 	}
468 
469 	/***
470 	 * @param list
471 	 * @return 
472 	 */
473 	private String arrayToCommaDelimitedString(List list) {
474 		if (list == null) {
475 			return "null";
476 		} else {
477 			StringBuffer sb = new StringBuffer();
478 			for (int i = 0, num = list.size(); i < num; i++) {
479 				if (i > 0) {
480 					sb.append(", ");
481 				}
482 				sb.append(((InternetAddress)list.get(i)).toUnicodeString());
483 			}
484 			return sb.toString();
485 		}
486 	}
487 
488 	/***
489 	 * ¥á¡¼¥?¤Î½ÅÍ×ÅÙ¡£Ä?¿ô¤Î¤ß¤òÄ?µÁ¡£
490 	 * 
491 	 * @author Tomohiro Otsuka
492 	 * @version $Id: Mail.java,v 1.4 2004/09/10 22:41:42 otsuka Exp $
493 	 */
494 	public static class Importance {
495 
496 		/*** ½ÅÍ×ÅÙ¡Ö¹â¡× */
497 		public static final String HIGH = "high";
498 
499 		/*** ½ÅÍ×ÅÙ¡ÖÃæ¡× */
500 		public static final String NORMAL = "normal";
501 
502 		/*** ½ÅÍ×ÅÙ¡ÖÄã¡× */
503 		public static final String LOW = "low";
504 
505 	}
506 }