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