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 }