OSDN Git Service

Support: [ #25090 ] TLS/SSL SMTP server connection suuport. Ph.1
authorTakuya Ono <takuya-o@users.sourceforge.jp>
Mon, 2 May 2011 19:11:59 +0000 (04:11 +0900)
committerTakuya Ono <takuya-o@users.sourceforge.jp>
Fri, 6 May 2011 05:23:12 +0000 (14:23 +0900)
nbproject/project.properties
src/org/jent/checksmtp/ApplicationProperties.java
src/org/jent/checksmtp/ApplicationUI.form
src/org/jent/checksmtp/ApplicationUI.java
src/org/jent/checksmtp/Bundle.properties
src/org/jent/checksmtp/Bundle_ja_JP.properties
src/org/jent/checksmtp/Processer.java

index 9a02b36..b620c0e 100644 (file)
@@ -1,3 +1,6 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.run.all.processors=true
 application.args=
 application.homepage=https://sourceforge.jp/projects/mdc
 application.title=mdc2
@@ -29,12 +32,16 @@ file.reference.BetaProject-test=src
 includes=**
 j2ee.platform=1.4
 j2ee.server.type=Tomcat55
-jar.compress=false
+jar.archive.disabled=${jnlp.enabled}
+jar.compress=true
+jar.index=${jnlp.enabled}
 javac.classpath=\
     ${libs.swing-layout.classpath}
 # Space-separated list of extra javac options
 javac.compilerargs=-Xlint:unchecked -encoding UTF-8
 javac.deprecation=true
+javac.processorpath=\
+    ${javac.classpath}
 javac.source=1.4
 javac.target=1.4
 javac.test.classpath=\
@@ -54,7 +61,9 @@ javadoc.version=false
 javadoc.windowtitle=-charset UTF-8 -docencoding UTF-8
 jnlp.codebase.type=local
 jnlp.codebase.url=file:/home/mirara/tkyn/src/NetBeansTest/BetaProject/dist/
+jnlp.descriptor=application
 jnlp.enabled=false
+jnlp.mixed.code=defaut
 jnlp.offline-allowed=false
 jnlp.signed=false
 main.class=org.jent.checksmtp.ApplicationUI
index a227e5f..faee9c0 100644 (file)
@@ -15,9 +15,11 @@ import java.util.Properties;
  * <H3>Properties</H3>
  * <DL>
  * <DT> -.port       <DD>Service port number.       (Default:8725)
+ * <DT> -.ssl        <DD>Service port use SSL.      (Default:false) //Not use yet.
  * <DT> -.enableRemoteConnect <DD>Permit connect from remote host. (Default:false)
  * <DT> -.serverHost <DD>STMP Server host name.     (Default:mail)
  * <DT> -.serverPort <DD>STMP Server port.          (Default:25)
+ * <DT> -.serverSSL <DD>SMTP Server port use SSL.   (Default:false)
  * <DT> -.confirm.timeout <DD> Confirm auto push OK timeput (Default:0 = forever)
  * <DT> -.ladp       <DD>If "true" use LDAP search. (Default:false)
  * <DT> -.ldap.providerUrl <DD>LDAP Provider URL    (Default:ldap://localhost:389
@@ -31,9 +33,11 @@ import java.util.Properties;
 public class ApplicationProperties {
   private static final String PREFIX = "org.jent.checksmtp";
   private static final String SMTP_PORT = PREFIX + ".port";
+  private static final String SMTP_SSL = PREFIX + ".SSL";
   private static final String SMTP_ENEBLE_REMOTE_CONNECT = PREFIX + ".enableRemoteConnect";
   private static final String SMTP_SERVER_HOST = PREFIX + ".serverHost";
   private static final String SMTP_SERVER_PORT = PREFIX + ".serverPort";
+  private static final String SMTP_SERVER_SSL = PREFIX + ".serverSSL";
   private static final String CONFIRM_TIMEOUT = PREFIX + ".confirmTimeout";
   private static final String LDAP_PREFIX = PREFIX + ".ldap";
   private static final String LDAP_PROVIDER_URL = LDAP_PREFIX + ".providerUrl";
@@ -109,10 +113,19 @@ public class ApplicationProperties {
   public static int getSmtpServerPort() {
     return Integer.parseInt(applicationProperties.getProperty(SMTP_SERVER_PORT, "25"));
   }
-  
   public static void setSmtpServerPort(int port) {
     applicationProperties.setProperty(SMTP_SERVER_PORT, new Integer(port).toString());
   }
+
+  public static boolean getSmtpServerSSL() {
+    //getProperty(str) default value is null. valueOf(null) retrun FALSE.
+    return Boolean.valueOf(applicationProperties.getProperty(SMTP_SERVER_SSL)).booleanValue();
+  }
+  
+  public static void setSmtpServerSSL(boolean ssl) {
+    applicationProperties.setProperty(SMTP_SERVER_SSL, Boolean.toString(ssl));
+  }
   
   public static int getSmtpPort() {
     return Integer.parseInt(applicationProperties.getProperty(SMTP_PORT, "8725"));
@@ -121,10 +134,18 @@ public class ApplicationProperties {
   public static void setSmtpPort(int port) {
     applicationProperties.setProperty(SMTP_PORT, new Integer(port).toString());
   }
-  
+
+  public static boolean getSmtpSSL() {
+    return Boolean.valueOf(applicationProperties.getProperty(SMTP_SSL)).booleanValue();
+  }
+
+  public static void setSmtpSSL(boolean ssl) {
+    applicationProperties.setProperty(SMTP_SSL, Boolean.toString(ssl));
+  }
+
   public static boolean getSmtpEnebleRemoteConnect() {
     String str = applicationProperties.getProperty(SMTP_ENEBLE_REMOTE_CONNECT);
-    return new Boolean(str).booleanValue();
+    return Boolean.valueOf(str).booleanValue();
   }
   
   public static void setSmtpEnableRemoteConnect(boolean obj) {
@@ -148,7 +169,7 @@ public class ApplicationProperties {
   }
   
   public static boolean getLdapIsSjis() {
-    return new Boolean(applicationProperties.getProperty(LDAP_IS_SJIS)).booleanValue();
+    return Boolean.valueOf(applicationProperties.getProperty(LDAP_IS_SJIS)).booleanValue();
   }
   
   public static void setLdapIsSjis(boolean obj) {
@@ -157,7 +178,8 @@ public class ApplicationProperties {
   
   public static boolean getLdap() {
     String str = applicationProperties.getProperty(LDAP_PREFIX);
-    Boolean flg = new Boolean(str);
+    //the value true if the string is ignoring case "true".
+    Boolean flg = Boolean.valueOf(str);
     return flg.booleanValue();
   }
   
index 9cca4bb..9efebf6 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" ?>
+<?xml version="1.1" encoding="UTF-8" ?>
 
 <Form version="1.4" maxVersion="1.4" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
   <Properties>
@@ -18,6 +18,8 @@
     <EventHandler event="windowIconified" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowIconified"/>
   </Events>
   <AuxValues>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
     <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
     <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
     <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
           <Group type="102" attributes="0">
               <EmptySpace max="-2" attributes="0"/>
               <Component id="jButtonQuit" linkSize="1" min="-2" max="-2" attributes="0"/>
-              <EmptySpace pref="148" max="32767" attributes="0"/>
+              <EmptySpace pref="190" max="32767" attributes="0"/>
               <Component id="jButtonOK" linkSize="1" min="-2" max="-2" attributes="0"/>
               <EmptySpace max="-2" attributes="0"/>
               <Component id="jButtonCancel" linkSize="1" min="-2" max="-2" attributes="0"/>
               <EmptySpace max="-2" attributes="0"/>
           </Group>
-          <Component id="jTabbedPane" alignment="0" pref="394" max="32767" attributes="0"/>
+          <Component id="jTabbedPane" alignment="0" pref="463" max="32767" attributes="0"/>
       </Group>
     </DimensionLayout>
     <DimensionLayout dim="1">
                   <Group type="102" attributes="0">
                       <EmptySpace min="-2" max="-2" attributes="0"/>
                       <Group type="103" groupAlignment="0" attributes="0">
-                          <Group type="102" alignment="0" attributes="0">
-                              <Component id="jLabel1" linkSize="2" min="-2" max="-2" attributes="0"/>
-                              <EmptySpace min="-2" max="-2" attributes="0"/>
-                              <Component id="jTextFieldReceiverPort" pref="73" max="32767" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
+                          <Group type="102" attributes="0">
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace max="-2" attributes="0"/>
+                                      <Component id="jTextFieldConfirmTimeout" min="-2" pref="30" max="-2" attributes="1"/>
+                                  </Group>
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="jLabel1" linkSize="2" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace max="-2" attributes="0"/>
+                                      <Component id="jTextFieldReceiverPort" min="-2" pref="47" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                              <EmptySpace pref="77" max="32767" attributes="0"/>
                               <Component id="jCheckBoxEnableRemoteConnect" min="-2" pref="207" max="-2" attributes="0"/>
                           </Group>
-                          <Group type="102" alignment="0" attributes="0">
-                              <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Component id="jTextFieldConfirmTimeout" pref="266" max="32767" attributes="0"/>
-                              <EmptySpace max="-2" attributes="0"/>
-                          </Group>
-                          <Group type="102" alignment="1" attributes="0">
+                          <Group type="102" attributes="0">
                               <Component id="jLabel2" linkSize="2" min="-2" max="-2" attributes="0"/>
                               <EmptySpace min="-2" max="-2" attributes="0"/>
-                              <Component id="jTextFieldServerHost" pref="154" max="32767" attributes="0"/>
+                              <Component id="jTextFieldServerHost" pref="166" max="32767" attributes="0"/>
                               <EmptySpace min="-2" max="-2" attributes="0"/>
                               <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
                               <EmptySpace min="-2" max="-2" attributes="0"/>
-                              <Component id="jTextFieldServerPort" pref="81" max="32767" attributes="0"/>
+                              <Component id="jTextFieldServerPort" min="-2" pref="49" max="-2" attributes="0"/>
                               <EmptySpace min="-2" max="-2" attributes="0"/>
+                              <Component id="jCheckBoxServerSSL" min="-2" max="-2" attributes="2"/>
+                              <EmptySpace min="-2" max="-2" attributes="1"/>
                           </Group>
                       </Group>
-                      <EmptySpace min="-2" max="-2" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
                       <Group type="103" groupAlignment="3" attributes="0">
                           <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
                           <Component id="jTextFieldServerHost" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jCheckBoxServerSSL" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jTextFieldServerPort" alignment="3" min="-2" pref="19" max="-2" attributes="0"/>
                           <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
-                          <Component id="jTextFieldServerPort" alignment="3" min="-2" max="-2" attributes="0"/>
                       </Group>
-                      <EmptySpace pref="35" max="32767" attributes="0"/>
+                      <EmptySpace pref="25" max="32767" attributes="0"/>
                       <Group type="103" groupAlignment="3" attributes="0">
                           <Component id="jLabel7" alignment="3" min="-2" max="-2" attributes="0"/>
                           <Component id="jTextFieldConfirmTimeout" alignment="3" min="-2" max="-2" attributes="0"/>
                   <Dimension value="[44, 19]"/>
                 </Property>
               </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jTextFieldReceiverPortActionPerformed"/>
+              </Events>
             </Component>
             <Component class="javax.swing.JTextField" name="jTextFieldServerHost">
               <Properties>
                 </Property>
               </Properties>
             </Component>
+            <Component class="javax.swing.JCheckBox" name="jCheckBoxServerSSL">
+              <Properties>
+                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="org/jent/checksmtp/Bundle.properties" key="ApplicationUI.jCheckBoxServerSSL.text" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
+                </Property>
+                <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+                  <ResourceString bundle="org/jent/checksmtp/Bundle.properties" key="ApplicationUI.jCheckBoxServerSSL.toolTipText" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
+                </Property>
+              </Properties>
+              <Events>
+                <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="jCheckBoxServerSSLStateChanged"/>
+              </Events>
+            </Component>
           </SubComponents>
         </Container>
         <Container class="javax.swing.JPanel" name="jPanelLDAP">
                               </Group>
                               <EmptySpace max="-2" attributes="0"/>
                               <Group type="103" groupAlignment="0" attributes="0">
-                                  <Component id="jTextFieldAttribute" alignment="0" pref="301" max="32767" attributes="0"/>
-                                  <Component id="jTextFieldBaseDn" pref="301" max="32767" attributes="0"/>
+                                  <Component id="jTextFieldAttribute" alignment="0" pref="353" max="32767" attributes="0"/>
+                                  <Component id="jTextFieldBaseDn" pref="353" max="32767" attributes="0"/>
                                   <Group type="102" alignment="0" attributes="0">
-                                      <Component id="jTextFieldProviderUrl" pref="221" max="32767" attributes="0"/>
+                                      <Component id="jTextFieldProviderUrl" pref="261" max="32767" attributes="0"/>
                                       <EmptySpace max="-2" attributes="0"/>
                                       <Component id="jCheckBoxIsSjis" min="-2" max="-2" attributes="0"/>
                                   </Group>
                           <Component id="jLabel6" alignment="3" min="-2" max="-2" attributes="0"/>
                           <Component id="jTextFieldAttribute" alignment="3" min="-2" max="-2" attributes="0"/>
                       </Group>
-                      <EmptySpace pref="22" max="32767" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
                               <Component id="jLabelSfURL" min="-2" max="-2" attributes="0"/>
                           </Group>
                       </Group>
-                      <EmptySpace max="32767" attributes="0"/>
+                      <EmptySpace pref="38" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
                       </Group>
                       <EmptySpace max="-2" attributes="0"/>
                       <Component id="jLabelSfURL" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace pref="60" max="32767" attributes="0"/>
+                      <EmptySpace pref="57" max="32767" attributes="0"/>
                   </Group>
               </Group>
             </DimensionLayout>
index 62c1aa4..f12b51a 100644 (file)
@@ -42,9 +42,11 @@ public class ApplicationUI extends javax.swing.JFrame {
   }
   
   private void resetDisplay() {
+    //reset display data from ApplicationProperties.
     jTextFieldReceiverPort.setText(Integer.toString(ApplicationProperties.getSmtpPort()));
     jTextFieldServerHost.setText(ApplicationProperties.getSmtpServerHost());
     jTextFieldServerPort.setText(Integer.toString(ApplicationProperties.getSmtpServerPort()));
+    jCheckBoxServerSSL.setSelected(ApplicationProperties.getSmtpServerSSL());
     jCheckBoxEnableRemoteConnect.setSelected(ApplicationProperties.getSmtpEnebleRemoteConnect());
     jTextFieldConfirmTimeout.setText(Integer.toString(ApplicationProperties.getConfirmTimeout()));
     
@@ -124,8 +126,9 @@ public class ApplicationUI extends javax.swing.JFrame {
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
-  // <editor-fold defaultstate="collapsed" desc=" Generated Code">//GEN-BEGIN:initComponents
+  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
   private void initComponents() {
+
     jTabbedPane = new javax.swing.JTabbedPane();
     jPanelMail = new javax.swing.JPanel();
     jLabel1 = new javax.swing.JLabel();
@@ -137,6 +140,7 @@ public class ApplicationUI extends javax.swing.JFrame {
     jCheckBoxEnableRemoteConnect = new javax.swing.JCheckBox();
     jLabel7 = new javax.swing.JLabel();
     jTextFieldConfirmTimeout = new javax.swing.JTextField();
+    jCheckBoxServerSSL = new javax.swing.JCheckBox();
     jPanelLDAP = new javax.swing.JPanel();
     jCheckBoxLdap = new javax.swing.JCheckBox();
     jLabel4 = new javax.swing.JLabel();
@@ -177,6 +181,11 @@ public class ApplicationUI extends javax.swing.JFrame {
     jTextFieldReceiverPort.setToolTipText(bundle.getString("ApplicationUI.jTextFieldReceiverPort.toolTipText")); // NOI18N
     jTextFieldReceiverPort.setInputVerifier(new PortNumberInputVerifier());
     jTextFieldReceiverPort.setMinimumSize(new java.awt.Dimension(44, 19));
+    jTextFieldReceiverPort.addActionListener(new java.awt.event.ActionListener() {
+      public void actionPerformed(java.awt.event.ActionEvent evt) {
+        jTextFieldReceiverPortActionPerformed(evt);
+      }
+    });
 
     jTextFieldServerHost.setText(bundle.getString("ApplicationUI.jTextFieldServerHost.text")); // NOI18N
     jTextFieldServerHost.setToolTipText(bundle.getString("ApplicationUI.jTextFieldServerHost.toolTipText")); // NOI18N
@@ -200,6 +209,14 @@ public class ApplicationUI extends javax.swing.JFrame {
     );
     jTextFieldConfirmTimeout.setMinimumSize(new java.awt.Dimension(1, 19));
 
+    jCheckBoxServerSSL.setText(bundle.getString("ApplicationUI.jCheckBoxServerSSL.text")); // NOI18N
+    jCheckBoxServerSSL.setToolTipText(bundle.getString("ApplicationUI.jCheckBoxServerSSL.toolTipText")); // NOI18N
+    jCheckBoxServerSSL.addChangeListener(new javax.swing.event.ChangeListener() {
+      public void stateChanged(javax.swing.event.ChangeEvent evt) {
+        jCheckBoxServerSSLStateChanged(evt);
+      }
+    });
+
     org.jdesktop.layout.GroupLayout jPanelMailLayout = new org.jdesktop.layout.GroupLayout(jPanelMail);
     jPanelMail.setLayout(jPanelMailLayout);
     jPanelMailLayout.setHorizontalGroup(
@@ -208,26 +225,28 @@ public class ApplicationUI extends javax.swing.JFrame {
         .addContainerGap()
         .add(jPanelMailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
           .add(jPanelMailLayout.createSequentialGroup()
-            .add(jLabel1)
-            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
-            .add(jTextFieldReceiverPort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE)
-            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+            .add(jPanelMailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+              .add(jPanelMailLayout.createSequentialGroup()
+                .add(jLabel7)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jTextFieldConfirmTimeout, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+              .add(jPanelMailLayout.createSequentialGroup()
+                .add(jLabel1)
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(jTextFieldReceiverPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 47, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 77, Short.MAX_VALUE)
             .add(jCheckBoxEnableRemoteConnect, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 207, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
           .add(jPanelMailLayout.createSequentialGroup()
-            .add(jLabel7)
-            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
-            .add(jTextFieldConfirmTimeout, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE)
-            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))
-          .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanelMailLayout.createSequentialGroup()
             .add(jLabel2)
             .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
-            .add(jTextFieldServerHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 143, Short.MAX_VALUE)
+            .add(jTextFieldServerHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 166, Short.MAX_VALUE)
             .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
             .add(jLabel3)
             .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
-            .add(jTextFieldServerPort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 69, Short.MAX_VALUE)
-            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)))
-        .addContainerGap())
+            .add(jTextFieldServerPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 49, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+            .add(jCheckBoxServerSSL)
+            .addContainerGap())))
     );
 
     jPanelMailLayout.linkSize(new java.awt.Component[] {jLabel1, jLabel2}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
@@ -244,14 +263,16 @@ public class ApplicationUI extends javax.swing.JFrame {
         .add(jPanelMailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
           .add(jLabel2)
           .add(jTextFieldServerHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
-          .add(jLabel3)
-          .add(jTextFieldServerPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
-        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 27, Short.MAX_VALUE)
+          .add(jCheckBoxServerSSL)
+          .add(jTextFieldServerPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+          .add(jLabel3))
+        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 25, Short.MAX_VALUE)
         .add(jPanelMailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
           .add(jLabel7)
           .add(jTextFieldConfirmTimeout, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
         .addContainerGap())
     );
+
     jTabbedPane.addTab(bundle.getString("ApplicationUI.jPanelMail.TabConstraints.tabTitle"), null, jPanelMail, bundle.getString("ApplicationUI.jPanelMail.TabConstraints tabToolTip")); // NOI18N
 
     jCheckBoxLdap.setText(bundle.getString("ApplicationUI.jCheckBoxLdap.text")); // NOI18N
@@ -302,10 +323,10 @@ public class ApplicationUI extends javax.swing.JFrame {
               .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel4))
             .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
             .add(jPanelLDAPLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
-              .add(jTextFieldAttribute, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
-              .add(jTextFieldBaseDn, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
+              .add(jTextFieldAttribute, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 353, Short.MAX_VALUE)
+              .add(jTextFieldBaseDn, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 353, Short.MAX_VALUE)
               .add(jPanelLDAPLayout.createSequentialGroup()
-                .add(jTextFieldProviderUrl, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 205, Short.MAX_VALUE)
+                .add(jTextFieldProviderUrl, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 261, Short.MAX_VALUE)
                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                 .add(jCheckBoxIsSjis))))
           .add(jPanelLDAPLayout.createSequentialGroup()
@@ -336,6 +357,7 @@ public class ApplicationUI extends javax.swing.JFrame {
           .add(jTextFieldAttribute, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
         .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
     );
+
     jTabbedPane.addTab(bundle.getString("ApplicationUI.jPanelLDAP.TabConstraints.tabTitle"), null, jPanelLDAP, bundle.getString("ApplicationUI.jPanelLDAP.TabConstraints tabToolTip")); // NOI18N
 
     jLabelProgramName.setFont(new java.awt.Font("Dialog", 1, 18));
@@ -361,7 +383,7 @@ public class ApplicationUI extends javax.swing.JFrame {
           .add(jPanelAboutLayout.createSequentialGroup()
             .add(55, 55, 55)
             .add(jLabelSfURL)))
-        .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        .addContainerGap(38, Short.MAX_VALUE))
     );
     jPanelAboutLayout.setVerticalGroup(
       jPanelAboutLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
@@ -374,6 +396,7 @@ public class ApplicationUI extends javax.swing.JFrame {
         .add(jLabelSfURL)
         .addContainerGap(57, Short.MAX_VALUE))
     );
+
     jTabbedPane.addTab(bundle.getString("ApplicationUI.jPanelAbout.TabConstraints.tabTitle"), null, jPanelAbout, bundle.getString("ApplicationUI.jPanelAbout.TabConstraints tabToolTip")); // NOI18N
 
     jButtonOK.setText(bundle.getString("ApplicationUI.jButtonOK.text")); // NOI18N
@@ -407,12 +430,12 @@ public class ApplicationUI extends javax.swing.JFrame {
       .add(layout.createSequentialGroup()
         .addContainerGap()
         .add(jButtonQuit)
-        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 133, Short.MAX_VALUE)
+        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 190, Short.MAX_VALUE)
         .add(jButtonOK)
         .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
         .add(jButtonCancel)
         .addContainerGap())
-      .add(jTabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 388, Short.MAX_VALUE)
+      .add(jTabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 463, Short.MAX_VALUE)
     );
 
     layout.linkSize(new java.awt.Component[] {jButtonCancel, jButtonOK, jButtonQuit}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
@@ -428,6 +451,7 @@ public class ApplicationUI extends javax.swing.JFrame {
           .add(jButtonOK))
         .addContainerGap())
     );
+
     pack();
   }// </editor-fold>//GEN-END:initComponents
   
@@ -449,6 +473,8 @@ public class ApplicationUI extends javax.swing.JFrame {
       jTextFieldReceiverPort.setBackground(Color.PINK);
       throw ex;
     }
+    boolean enableRemoteConnect = jCheckBoxEnableRemoteConnect.isSelected();
+
     String serverHost = jTextFieldServerHost.getText();
     int serverPort;
     try {
@@ -458,7 +484,8 @@ public class ApplicationUI extends javax.swing.JFrame {
       jTextFieldServerPort.setBackground(Color.PINK);
       throw ex;
     }
-    boolean enableRemoteConnect = jCheckBoxEnableRemoteConnect.isSelected();
+    boolean serverSSL = jCheckBoxServerSSL.isSelected();
+
     int confirmTimeout;
     try {
       confirmTimeout = Integer.parseInt(jTextFieldConfirmTimeout.getText());
@@ -475,11 +502,11 @@ public class ApplicationUI extends javax.swing.JFrame {
     boolean isSjis = jCheckBoxIsSjis.isSelected();
     
     if ( port != ApplicationProperties.getSmtpPort()
+    || enableRemoteConnect != ApplicationProperties.getSmtpEnebleRemoteConnect()
     || !serverHost.equals(ApplicationProperties.getSmtpServerHost())
     || serverPort != ApplicationProperties.getSmtpServerPort()
-    || enableRemoteConnect != ApplicationProperties.getSmtpEnebleRemoteConnect()
-    || confirmTimeout != ApplicationProperties.getConfirmTimeout()
-        
+    || serverSSL != ApplicationProperties.getSmtpServerSSL()
+    || confirmTimeout != ApplicationProperties.getConfirmTimeout()    
     || enableLdap != ApplicationProperties.getLdap()
     || !ldapUrl.equals(ApplicationProperties.getLdapProviderURL())
     || !rootDn.equals(ApplicationProperties.getLdapRoot())
@@ -489,9 +516,12 @@ public class ApplicationUI extends javax.swing.JFrame {
     ) {
       // When modify data, save properries file.
       ApplicationProperties.setSmtpPort(port);
+      ApplicationProperties.setSmtpEnableRemoteConnect(enableRemoteConnect);
+
       ApplicationProperties.setSmtpServerHost(serverHost);
       ApplicationProperties.setSmtpServerPort(serverPort);
-      ApplicationProperties.setSmtpEnableRemoteConnect(enableRemoteConnect);
+      ApplicationProperties.setSmtpServerSSL(serverSSL);
+
       ApplicationProperties.setConfirmTimeout(confirmTimeout);
       
       ApplicationProperties.setLdap(enableLdap);
@@ -551,6 +581,21 @@ public class ApplicationUI extends javax.swing.JFrame {
     }
     iconified();
   }//GEN-LAST:event_jButtonCancelActionPerformed
+
+  private void jCheckBoxServerSSLStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckBoxServerSSLStateChanged
+    // takuya-o
+    boolean check = jCheckBoxServerSSL.isSelected();
+    // smtp(port 25) and ssmpt(port 465) switch.   cf. TLS/STARTTLS port 587
+    if ( check == true && jTextFieldServerPort.getText().equals("25") ) {
+      jTextFieldServerPort.setText("465");
+    }else if ( check == false && jTextFieldServerPort.getText().equals("465") ) {
+      jTextFieldServerPort.setText("25");
+    }
+  }//GEN-LAST:event_jCheckBoxServerSSLStateChanged
+
+  private void jTextFieldReceiverPortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldReceiverPortActionPerformed
+    // TODO add your handling code here:
+  }//GEN-LAST:event_jTextFieldReceiverPortActionPerformed
   
   private boolean isModifiedPotition() {
     int x = 0;
@@ -720,6 +765,7 @@ public class ApplicationUI extends javax.swing.JFrame {
   private javax.swing.JCheckBox jCheckBoxEnableRemoteConnect;
   private javax.swing.JCheckBox jCheckBoxIsSjis;
   private javax.swing.JCheckBox jCheckBoxLdap;
+  private javax.swing.JCheckBox jCheckBoxServerSSL;
   private javax.swing.JLabel jLabel1;
   private javax.swing.JLabel jLabel2;
   private javax.swing.JLabel jLabel3;
index 688f625..4ee9f93 100644 (file)
@@ -21,6 +21,8 @@ ApplicationUI.jPanelLDAP.TabConstraints.tabTitle=LDAP
 ApplicationUI.jTextFieldServerPort.toolTipText=Mail server port number.\r
 \r
 ApplicationUI.jTextFieldServerPort.text=25\r
+ApplicationUI.jCheckBoxServerSSL.text=SSL\r
+ApplicationUI.jCheckBoxServerSSL.toolTipText=Use SSL on mail server connection.\r
 \r
 ApplicationUI.jLabel6.text=Attribute\:\r
 \r
index 6579686..5baf8a5 100644 (file)
 # Sample ResourceBundle properties file\r
 \r
-ApplicationUI.jPanelMail.TabConstraints.tabTitle=\u30E1\u30FC\u30EB\r
+ApplicationUI.jPanelMail.TabConstraints.tabTitle=\u30e1\u30fc\u30eb\r
 \r
-ApplicationUI.jCheckBoxLdap.toolTipText=\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3068LDAP\u306E\u8A2D\u5B9A\u304C\u6709\u52B9\u306B\u306A\u308B\u3002\r
+ApplicationUI.jCheckBoxLdap.toolTipText=\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3068LDAP\u306e\u8a2d\u5b9a\u304c\u6709\u52b9\u306b\u306a\u308b\u3002\r
 \r
-ApplicationUI.jCheckBoxLdap.text=LDAP\u691C\u7D22\r
+ApplicationUI.jCheckBoxLdap.text=LDAP\u691c\u7d22\r
 \r
-ApplicationUI.jTextFieldServerHost.toolTipText=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u306E\u30DB\u30B9\u30C8\u540D\u304BIP\u30A2\u30C9\u30EC\u30B9\r
+ApplicationUI.jTextFieldServerHost.toolTipText=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u306e\u30db\u30b9\u30c8\u540d\u304bIP\u30a2\u30c9\u30ec\u30b9\r
 \r
 ApplicationUI.jTextFieldServerHost.text=mail\r
 \r
-ApplicationUI.jCheckBoxIsSjis.toolTipText=\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3068\u5F37\u5236\u7684\u306BLDAP\u30B5\u30FC\u30D0\u3068\u306E\u901A\u4FE1\u3092Shift JIS\u3067\u884C\u3046\u3002\r
+ApplicationUI.jCheckBoxIsSjis.toolTipText=\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3068\u5f37\u5236\u7684\u306bLDAP\u30b5\u30fc\u30d0\u3068\u306e\u901a\u4fe1\u3092Shift JIS\u3067\u884c\u3046\u3002\r
 \r
-ApplicationUI.jCheckBoxIsSjis.text=SJIS\u3067\u901A\u4FE1\r
+ApplicationUI.jCheckBoxIsSjis.text=SJIS\u3067\u901a\u4fe1\r
 \r
-ApplicationUI.jLabel1.text=\u53D7\u4FE1\u30DD\u30FC\u30C8\:\r
+ApplicationUI.jLabel1.text=\u53d7\u4fe1\u30dd\u30fc\u30c8\:\r
 \r
 ApplicationUI.jPanelLDAP.TabConstraints.tabTitle=LDAP\r
 \r
-ApplicationUI.jTextFieldServerPort.toolTipText=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u306E\u30DD\u30FC\u30C8\u756A\u53F7\r
+ApplicationUI.jTextFieldServerPort.toolTipText=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u306e\u30dd\u30fc\u30c8\u756a\u53f7\r
 ApplicationUI.jTextFieldServerPort.text=25\r
 \r
-ApplicationUI.jLabel6.text=LDAP\u5C5E\u6027\:\r
+ApplicationUI.jLabel6.text=LDAP\u5c5e\u6027\:\r
 \r
-ApplicationUI.jButtonQuit.text=\u7D42\u4E86\r
+ApplicationUI.jButtonQuit.text=\u7d42\u4e86\r
 \r
 ApplicationUI.jLabel4.text=URL\:\r
 \r
-ApplicationUI.jTextFieldProviderUrl.toolTipText=LDAP\u30B5\u30FC\u30D0\u306EURL\r
+ApplicationUI.jTextFieldProviderUrl.toolTipText=LDAP\u30b5\u30fc\u30d0\u306eURL\r
 \r
 ApplicationUI.jTextFieldProviderUrl.text=ldap\://localhost\:389/\r
 \r
-ApplicationUI.jLabel2.text=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\:\r
+ApplicationUI.jLabel2.text=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\:\r
 \r
-ApplicationUI.jCheckBoxEnableRemoteConnect.toolTipText=\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3068\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u306E\u63A5\u7D9A\u3092\u8A31\u53EF\u3059\u308B\u3002(\u901A\u5E38\u306F\u30C1\u30A7\u30C3\u30AF\u3057\u306A\u3044)\r
+ApplicationUI.jCheckBoxEnableRemoteConnect.toolTipText=\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3068\u30ea\u30e2\u30fc\u30c8\u304b\u3089\u306e\u63a5\u7d9a\u3092\u8a31\u53ef\u3059\u308b\u3002(\u901a\u5e38\u306f\u30c1\u30a7\u30c3\u30af\u3057\u306a\u3044)\r
 \r
-ApplicationUI.jCheckBoxEnableRemoteConnect.text=\u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u8A31\u53EF\r
+ApplicationUI.jCheckBoxEnableRemoteConnect.text=\u30ea\u30e2\u30fc\u30c8\u63a5\u7d9a\u8a31\u53ef\r
 \r
-ApplicationUI.jButtonCancel.text=\u4E2D\u6B62\r
+ApplicationUI.jButtonCancel.text=\u4e2d\u6b62\r
 \r
-ApplicationUI.jLabel3.text=\u30DD\u30FC\u30C8\:\r
+ApplicationUI.jLabel3.text=\u30dd\u30fc\u30c8\:\r
 \r
-ApplicationUI.title=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\r
+ApplicationUI.title=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\r
 \r
 ApplicationUI.jLabel5.text=Root DN\:\r
 \r
-ApplicationUI.jTextFieldBaseDn.toolTipText=LDAP\u3067\u691C\u7D22\u3092\u958B\u59CB\u3059\u308BDN\r
+ApplicationUI.jTextFieldBaseDn.toolTipText=LDAP\u3067\u691c\u7d22\u3092\u958b\u59cb\u3059\u308bDN\r
 \r
 ApplicationUI.jTextFieldBaseDn.text=C\=JP\r
 \r
 ApplicationUI.jButtonOK.text=OK\r
 \r
-ApplicationUI.jTextFieldAttribute.toolTipText=\u8868\u793A\u3059\u308BLDAP\u5C5E\u6027 \u4F8B\: cn title;lang-ja-jp\r
+ApplicationUI.jTextFieldAttribute.toolTipText=\u8868\u793a\u3059\u308bLDAP\u5c5e\u6027 \u4f8b\: cn title;lang-ja-jp\r
 \r
 ApplicationUI.jTextFieldAttribute.text=cn\r
 \r
-ApplicationUI.jTextFieldReceiverPort.toolTipText=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u5F85\u3061\u3046\u3051\u3059\u308B\u30DD\u30FC\u30C8\u756A\u53F7\r
+ApplicationUI.jTextFieldReceiverPort.toolTipText=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u5f85\u3061\u3046\u3051\u3059\u308b\u30dd\u30fc\u30c8\u756a\u53f7\r
 ApplicationUI.jTextFieldReceiverPort.text=8725\r
 \r
-MessageDialogUI.jButtonDetail.text=\u8A73\u7D30<<\r
+MessageDialogUI.jButtonDetail.text=\u8a73\u7d30<<\r
 \r
-ToListUI.title=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\r
+ToListUI.title=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\r
 \r
-ToListUI.jButtonCancel.text=\u4E2D\u6B62\r
+ToListUI.jButtonCancel.text=\u4e2d\u6b62\r
 \r
-ToListUI.jButtonOK.text=\u9001\u4FE1\r
+ToListUI.jButtonOK.text=\u9001\u4fe1\r
 \r
-MessageDialogUI.jButtonOK.text=\u9589\u3058\u308B\r
+MessageDialogUI.jButtonOK.text=\u9589\u3058\u308b\r
 \r
-MessageDialogUI.jButtonDetail.text.open=\u8A73\u7D30>>\r
+MessageDialogUI.jButtonDetail.text.open=\u8a73\u7d30>>\r
 \r
-MessageDialogUI.title.Error_mdc=\u30A8\u30E9\u30FC \u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\r
+MessageDialogUI.title.Error_mdc=\u30a8\u30e9\u30fc \u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\r
 \r
-MessageDialogUI.title.Information_mdc=\u60C5\u5831 \u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\r
+MessageDialogUI.title.Information_mdc=\u60c5\u5831 \u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\r
 \r
-MessageDialogUI.title.Warning_mdc=\u8B66\u544A \u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u30D7\u30ED\u30B0\u30E9\u30E0\r
-ApplicationUI.jButtonQuit.toolTipText=\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002\r
+MessageDialogUI.title.Warning_mdc=\u8b66\u544a \u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u30d7\u30ed\u30b0\u30e9\u30e0\r
+ApplicationUI.jButtonQuit.toolTipText=\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d42\u4e86\u3057\u307e\u3059\u3002\r
 \r
-ApplicationUI.jButtonOK.toolTipText=\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002\r
+ApplicationUI.jButtonOK.toolTipText=\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u3002\r
 \r
-ApplicationUI.jButtonCancel.toolTipText=\u4ECA\u56DE\u306E\u8A2D\u5B9A\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059\u3002\r
+ApplicationUI.jButtonCancel.toolTipText=\u4eca\u56de\u306e\u8a2d\u5b9a\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3059\u3002\r
 \r
-ApplicationUI.jLabelProgramName.text=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\r
+ApplicationUI.jLabelProgramName.text=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\r
 \r
-ApplicationUI.jPanelAbout.TabConstraints.tabTitle=\u60C5\u5831\r
+ApplicationUI.jPanelAbout.TabConstraints.tabTitle=\u60c5\u5831\r
 \r
-ApplicationUI.Port_number_is_integer_from_1_to_65535.=\u30DD\u30FC\u30C8\u756A\u53F7\u306F1\u301C65535\u307E\u3067\u3067\u3059\u3002\r
+ApplicationUI.Port_number_is_integer_from_1_to_65535.=\u30dd\u30fc\u30c8\u756a\u53f7\u306f1\u301c65535\u307e\u3067\u3067\u3059\u3002\r
 \r
-ApplicationUI.error.Fail_the_properties_file_save.=\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\r
+ApplicationUI.error.Fail_the_properties_file_save.=\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\r
 \r
-ApplicationUI.error.Out_of_range.=\u7BC4\u56F2\u304C\u4E0D\u6B63\u3067\u3059\u3002\r
+ApplicationUI.error.Out_of_range.=\u7bc4\u56f2\u304c\u4e0d\u6b63\u3067\u3059\u3002\r
 \r
-ApplicationUI.shortTitle=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\r
+ApplicationUI.shortTitle=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\r
 \r
-ToListUI.error.Fail_the_properties_file_of_dialog_potition_save.=\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u4F4D\u7F6E\u306E\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\r
+ToListUI.error.Fail_the_properties_file_of_dialog_potition_save.=\u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u4f4d\u7f6e\u306e\u4fdd\u5b58\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\r
 \r
-LDAPSearch.error.LDAPSearch_init_error.=LDAP\u691C\u7D22\u306E\u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\r
+LDAPSearch.error.LDAPSearch_init_error.=LDAP\u691c\u7d22\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\r
 \r
-LDAPSearch.error.LDAP_Search_Error.=LDAP\u691C\u7D22\u3067\u30A8\u30E9\u30FC\r
+LDAPSearch.error.LDAP_Search_Error.=LDAP\u691c\u7d22\u3067\u30a8\u30e9\u30fc\r
 \r
-LDAPSearch.error.LDAP_Unexpected_Error.=LDAP\u3067\u4E88\u60F3\u5916\u306E\u30A8\u30E9\u30FC\r
+LDAPSearch.error.LDAP_Unexpected_Error.=LDAP\u3067\u4e88\u60f3\u5916\u306e\u30a8\u30e9\u30fc\r
 \r
-Processer.error.Execption_occurred_at_starting_SMTP_thread.=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u3068\u306ESMTP\u901A\u4FE1\u306E\u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\r
+Processer.error.Execption_occurred_at_starting_SMTP_thread.=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u3068\u306eSMTP\u901a\u4fe1\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\r
 \r
-Processer.error.Runtime_Exception_occurred_in_SMTP_parse=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u3068\u306ESMTP\u901A\u4FE1\u4E2D\u306B\u5B9F\u884C\u6642\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\r
+Processer.error.Runtime_Exception_occurred_in_SMTP_parse=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u3068\u306eSMTP\u901a\u4fe1\u4e2d\u306b\u5b9f\u884c\u6642\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\r
 \r
-Processer.error.Error_occurred_in_SMTP_parse.=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u3068\u306ESMTP\u901A\u4FE1\u3067\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\r
+Processer.error.Error_occurred_in_SMTP_parse.=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u3068\u306eSMTP\u901a\u4fe1\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\r
 \r
-SMTPClient.error.Recive_Port_bind_error=\u53D7\u4FE1\u7528\u306E\u30DD\u30FC\u30C8\u306E\u521D\u671F\u5316(bind)\u306B\u5931\u6557\u3057\u305F\u306E\u3067\u53D7\u4FE1\u304C\u505C\u6B62\u3057\u307E\u3057\u305F\u3002\r
+SMTPClient.error.Recive_Port_bind_error=\u53d7\u4fe1\u7528\u306e\u30dd\u30fc\u30c8\u306e\u521d\u671f\u5316(bind)\u306b\u5931\u6557\u3057\u305f\u306e\u3067\u53d7\u4fe1\u304c\u505c\u6b62\u3057\u307e\u3057\u305f\u3002\r
 \r
-SMTPClient.error.IO_Error_Occurred=\u53D7\u4FE1\u5F85\u3067\u901A\u4FE1\u30A8\u30E9\u30FC\u306B\u3088\u308A\u53D7\u4FE1\u304C\u505C\u6B62\u3057\u307E\u3057\u305F\u3002\r
+SMTPClient.error.IO_Error_Occurred=\u53d7\u4fe1\u5f85\u3067\u901a\u4fe1\u30a8\u30e9\u30fc\u306b\u3088\u308a\u53d7\u4fe1\u304c\u505c\u6b62\u3057\u307e\u3057\u305f\u3002\r
 \r
-SMTPClient.error.Argument_Error_Occurted=\u8A2D\u5B9A\u5024\u304C\u6B63\u3057\u304F\u306A\u3044\u305F\u3081\u306B\u53D7\u4FE1\u304C\u3067\u304D\u3066\u3044\u307E\u305B\u3093\u3002\u8A2D\u5B9A\u3092\u5909\u3048\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002\r
+SMTPClient.error.Argument_Error_Occurted=\u8a2d\u5b9a\u5024\u304c\u6b63\u3057\u304f\u306a\u3044\u305f\u3081\u306b\u53d7\u4fe1\u304c\u3067\u304d\u3066\u3044\u307e\u305b\u3093\u3002\u8a2d\u5b9a\u3092\u5909\u3048\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\r
 \r
-SMTPCLient.error.Runtime_Exception_was_occurred=\u5B9F\u884C\u6642\u30A8\u30E9\u30FC\u306B\u3088\u308A\u53D7\u4FE1\u3092\u505C\u6B62\u3057\u307E\u3057\u305F\u3002\u8A2D\u5B9A\u3092\u5909\u3048\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002\r
+SMTPCLient.error.Runtime_Exception_was_occurred=\u5b9f\u884c\u6642\u30a8\u30e9\u30fc\u306b\u3088\u308a\u53d7\u4fe1\u3092\u505c\u6b62\u3057\u307e\u3057\u305f\u3002\u8a2d\u5b9a\u3092\u5909\u3048\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\r
 \r
-SMTPClient.error.Unexpected_service_stoping_ocurreed=\u4E88\u60F3\u5916\u306E\u30A8\u30E9\u30FC\u306B\u3088\u308A\u53D7\u4FE1\u3092\u505C\u6B62\u3057\u307E\u3057\u305F\u3002\r
+SMTPClient.error.Unexpected_service_stoping_ocurreed=\u4e88\u60f3\u5916\u306e\u30a8\u30e9\u30fc\u306b\u3088\u308a\u53d7\u4fe1\u3092\u505c\u6b62\u3057\u307e\u3057\u305f\u3002\r
 \r
-ApplicationUI.jLabel7.text=\u6642\u9650\u5F0F\u9001\u4FE1\u78BA\u8A8D\u5F85\u3061\u6642\u9593\:\r
+ApplicationUI.jLabel7.text=\u6642\u9650\u5f0f\u9001\u4fe1\u78ba\u8a8d\u5f85\u3061\u6642\u9593\:\r
 \r
-ApplicationUI.jTextFieldConfirmTimeout.toolTipText=\u9001\u4FE1\u78BA\u8A8D\u3092\u5F85\u3064\u79D2\u6570\u3002\u3053\u306E\u79D2\u6570\u3092\u904E\u304E\u308B\u3068\u81EA\u52D5\u7684\u306B\u9001\u4FE1\u3057\u307E\u3059\u3002(0\:\u6C38\u4E45\u5F85\u3061)\r
+ApplicationUI.jTextFieldConfirmTimeout.toolTipText=\u9001\u4fe1\u78ba\u8a8d\u3092\u5f85\u3064\u79d2\u6570\u3002\u3053\u306e\u79d2\u6570\u3092\u904e\u304e\u308b\u3068\u81ea\u52d5\u7684\u306b\u9001\u4fe1\u3057\u307e\u3059\u3002(0\:\u6c38\u4e45\u5f85\u3061)\r
 \r
-ApplicationUI.jPanelMail.TabConstraints\ tabToolTip=\u30E1\u30FC\u30EB\u95A2\u4FC2\u306E\u8A2D\u5B9A\r
+ApplicationUI.jPanelMail.TabConstraints\ tabToolTip=\u30e1\u30fc\u30eb\u95a2\u4fc2\u306e\u8a2d\u5b9a\r
 \r
-ApplicationUI.jPanelLDAP.TabConstraints\ tabToolTip=LDAP\u95A2\u4FC2\u306E\u8A2D\u5B9A\r
+ApplicationUI.jPanelLDAP.TabConstraints\ tabToolTip=LDAP\u95a2\u4fc2\u306e\u8a2d\u5b9a\r
 \r
-ApplicationUI.jPanelAbout.TabConstraints\ tabToolTip=\u3053\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u306B\u3064\u3044\u3066\r
+ApplicationUI.jPanelAbout.TabConstraints\ tabToolTip=\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3064\u3044\u3066\r
 \r
-ApplicationUI.exception.Timeout_need_to_a_positive_number=\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u5024\u306F0\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\r
+ApplicationUI.exception.Timeout_need_to_a_positive_number=\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u5024\u306f0\u4ee5\u4e0a\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r
+ApplicationUI.jCheckBoxServerSSL.toolTipText=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u3068\u306e\u63a5\u7d9a\u306bSSL\u3092\u5229\u7528\u3059\u308b\u3002\r
+ApplicationUI.jCheckBoxServerSSL.text=SSL\u6709\u52b9\r
index 1f6c28e..2faec55 100644 (file)
@@ -13,10 +13,16 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 
 import java.net.Socket;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
 
 import java.util.ArrayList;
 import java.util.ListIterator;
 import java.util.regex.Pattern;
+import javax.net.SocketFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import org.jent.checksmtp.ssl.RespondingX509TrustManager;
 
 
 public class Processer implements Runnable, ResultNotify {
@@ -83,6 +89,7 @@ public class Processer implements Runnable, ResultNotify {
     BufferedReader clientReader;
     PrintWriter clientWriter;
 
+    SocketFactory socketFactory = null;
     Socket server = null;
       
     try {
@@ -92,8 +99,36 @@ public class Processer implements Runnable, ResultNotify {
       //SMTP Server port 
       int serverport = ApplicationProperties.getSmtpServerPort();
 
+      if ( ApplicationProperties.getSmtpServerSSL() ) {
+        //SMTP Server use SSL
+        System.out.println("SMTP Server use SSL.");
+        //socketFactory = SSLSocketFactory.getDefault();
+        //OreOre server connection support TrustManager setting.
+        try {
+          SSLContext sslContext = SSLContext.getInstance("TLS"); //SSL,TLS,TLSv1.1
+          sslContext.init(null,
+                new TrustManager[]{ new RespondingX509TrustManager()  }, null);
+          socketFactory = sslContext.getSocketFactory();
+        } catch (NoSuchAlgorithmException nsaEx ) {//from SSLContext.getDefault()
+          //TODO: Error dialog
+          nsaEx.printStackTrace(System.err);
+        } catch (KeyManagementException kmEx) {//from SSLContext.init()
+          //TODO: Error dialog
+          kmEx.printStackTrace(System.err);
+        } catch (IllegalStateException isEx) {//from SSLContext.getSocketFactory()
+          //TODO: Error dialog
+          isEx.printStackTrace(System.err);
+        } catch (Exception ex) { //for new RespondingX506TrustManager()
+          //TODO: Error dialog
+          ex.printStackTrace(System.err);
+        }
+      } else {
+        //SMTP Server is normal Socket.
+        socketFactory = SocketFactory.getDefault();
+      }
+
       //Connection to true SMTP server.
-      server = new Socket(servername, serverport);
+      server = socketFactory.createSocket(servername, serverport);
       serverInput = server.getInputStream();
       serverOutput = server.getOutputStream();
       clientInput = client.getInputStream();