OSDN Git Service

Fixes #26817 SendMailImpl, SendMailProImpl で、Session 生成時に渡される Properties オブジェクトを生成するコ...
authorIwao AVE! <harawata@gmail.com>
Fri, 25 Nov 2011 15:12:32 +0000 (00:12 +0900)
committerIwao AVE! <harawata@gmail.com>
Fri, 25 Nov 2011 15:12:32 +0000 (00:12 +0900)
src/main/java/com/ozacc/mail/impl/SendMailImpl.java
src/main/java/com/ozacc/mail/impl/SendMailProImpl.java

index aef932a..18184c5 100644 (file)
@@ -71,9 +71,9 @@ public class SendMailImpl implements SendMail {
 
        private String messageId;
 
-       private int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
+       protected int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
 
-       private int readTimeout = DEFAULT_READ_TIMEOUT;
+       protected int readTimeout = DEFAULT_READ_TIMEOUT;
 
        /**
         * コンストラクタ。
@@ -153,14 +153,7 @@ public class SendMailImpl implements SendMail {
 
        private void processSend(MimeMessageWrapper[] mmws) throws MailException {
 
-               Properties prop = new Properties();
-               // タイムアウトの設定
-               prop.put("mail.smtp.connectiontimeout", String.valueOf(connectionTimeout));
-               prop.put("mail.smtp.timeout", String.valueOf(readTimeout));
-               //      mail.smtp.authプロパティの設定
-               if (username != null && !"".equals(username) && password != null && !"".equals(password)) {
-                       prop.put("mail.smtp.auth", "true");
-               }
+               Properties prop = initProperties();
                Session session = Session.getInstance(prop);
 
                Transport transport = null;
@@ -221,6 +214,24 @@ public class SendMailImpl implements SendMail {
        }
 
        /**
+        * <p>Session 生成時に渡される Properties オブジェクトを生成して返します。<br>
+        * デフォルトの実装では、タイムアウトおよび SMTP 認証有効化のプロパティを設定しています。<p>
+        * 
+        * @return 生成した Properties オブジェクト
+        */
+       protected Properties initProperties() {
+               Properties prop = new Properties();
+               // タイムアウトの設定
+               prop.put("mail.smtp.connectiontimeout", String.valueOf(connectionTimeout));
+               prop.put("mail.smtp.timeout", String.valueOf(readTimeout));
+               //      mail.smtp.authプロパティの設定
+               if (username != null && !"".equals(username) && password != null && !"".equals(password)) {
+                       prop.put("mail.smtp.auth", "true");
+               }
+               return prop;
+       }
+
+       /**
         * 新しいMimeMessageオブジェクトを生成します。<br>
         * messageIdプロパティがセットされている場合、OMLMimeMessageのインスタンスを生成します。
         * 
index c69d9a6..03c35b9 100644 (file)
@@ -75,9 +75,9 @@ public class SendMailProImpl implements SendMailPro {
 
        private String messageId;
 
-       private int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
+       protected int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
 
-       private int readTimeout = DEFAULT_READ_TIMEOUT;
+       protected int readTimeout = DEFAULT_READ_TIMEOUT;
 
        /**
         * コンストラクタ。
@@ -125,10 +125,22 @@ public class SendMailProImpl implements SendMailPro {
        }
 
        /**
-        * Sessionの初期化を行います。
-        * タイムアウト値を設定したPropertiesをセットします。
+        * <p>
+        * {@link #initProperties()} から返された Properties を引数として Session の初期化を行います。
+        * </p>
         */
        private void initSession() {
+               Properties prop = initProperties();
+               session = Session.getInstance(prop);
+       }
+
+       /**
+        * <p>Session 生成時に渡される Properties オブジェクトを生成して返します。<br>
+        * デフォルトの実装では、タイムアウトおよび SMTP 認証有効化のプロパティを設定しています。<p>
+        * 
+        * @return 生成した Properties オブジェクト
+        */
+       protected Properties initProperties() {
                Properties prop = new Properties();
                // タイムアウトの設定
                prop.put("mail.smtp.connectiontimeout", String.valueOf(connectionTimeout));
@@ -137,7 +149,7 @@ public class SendMailProImpl implements SendMailPro {
                if (username != null && !"".equals(username) && password != null && !"".equals(password)) {
                        prop.put("mail.smtp.auth", "true");
                }
-               session = Session.getInstance(prop);
+               return prop;
        }
 
        /**