View Javadoc

1   package com.ozacc.mail.impl;
2   
3   import java.util.Random;
4   
5   import javax.mail.MessagingException;
6   import javax.mail.Session;
7   import javax.mail.internet.MimeMessage;
8   
9   /***
10   * Message-Id¥Ø¥Ã¥À¤¬¥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤ÊMimeMessage¤Î¥µ¥Ö¥¯¥é¥¹¡£
11   * 
12   * @since 1.1
13   * 
14   * @author Tomohiro Otsuka
15   * @version $Id: OMLMimeMessage.java,v 1.3 2004/09/25 02:17:41 otsuka Exp $
16   */
17  class OMLMimeMessage extends MimeMessage {
18  
19  	private String messageId;
20  
21  	private static Random random = new Random();
22  
23  	/***
24  	 * ¥³¥ó¥¹¥È¥é¥¯¥¿¡£
25  	 * 
26  	 * @param session 
27  	 * @param messageId Message-Id¥Ø¥Ã¥À¤Î¥É¥á¥¤¥óÉôʬ¤Ë»ÈÍѤ¹¤?ʸ»úÎ?
28  	 */
29  	OMLMimeMessage(Session session, String messageId) {
30  		super(session);
31  
32  		String[] parts = messageId.split("@");
33  		if (parts.length == 1) {
34  			this.messageId = "@" + messageId;
35  		} else if (parts.length == 2) {
36  			if (parts[0].length() > 0 && !parts[0].startsWith(".")) {
37  				this.messageId = "." + messageId;
38  			} else {
39  				this.messageId = messageId;
40  			}
41  		}
42  	}
43  
44  	/***
45  	 * Message-Id¥Ø¥Ã¥À¤ò¤³¤³¤Ç¥»¥Ã¥È¤·¤Þ¤¹¡£
46  	 * <p>
47  	 * »²¹Í¥Ú¡¼¥¸<br>
48  	 * <a href="http://java.sun.com/products/javamail/FAQ.html#msgid">http://java.sun.com/products/javamail/FAQ.html#msgid</a>
49  	 * 
50  	 * @see javax.mail.internet.MimeMessage#updateHeaders()
51  	 */
52  	protected void updateHeaders() throws MessagingException {
53  		super.updateHeaders();
54  		setHeader("Message-ID", generateRandomMessageId());
55  	}
56  
57  	/***
58  	 * ¥¿¥¤¥à¥¹¥¿¥ó¥× + 16·å¤ÎÍð¿? + messageId¥×¥úÁѥƥ£¤òÏ¢·?¤·¤¿Ê¸»úÎó¤òÊÖ¤·¤Þ¤¹¡£
59  	 * 
60  	 * @return ¥¿¥¤¥à¥¹¥¿¥ó¥× + 16·å¤ÎÍð¿? + messageId¥×¥úÁѥƥ£¤òÏ¢·?¤·¤¿Ê¸»úÎ?
61  	 */
62  	protected String generateRandomMessageId() {
63  		StringBuffer buf = new StringBuffer();
64  		buf.append(System.currentTimeMillis()).append(".");
65  		for (int i = 0; i < 16; i++) {
66  			long num = Math.abs(random.nextInt(10));
67  			buf.append(num);
68  		}
69  		buf.append(messageId);
70  		return buf.toString();
71  	}
72  
73  }