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 }