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 }