From 0a5f98815b336a57884ec73a93dfef2b81dd5efe Mon Sep 17 00:00:00 2001 From: Takuya Ono Date: Tue, 3 May 2011 04:11:59 +0900 Subject: [PATCH] Support: [ #25090 ] TLS/SSL SMTP server connection suuport. Ph.1 --- nbproject/project.properties | 11 ++- src/org/jent/checksmtp/ApplicationProperties.java | 32 +++++- src/org/jent/checksmtp/ApplicationUI.form | 75 +++++++++----- src/org/jent/checksmtp/ApplicationUI.java | 102 +++++++++++++------ src/org/jent/checksmtp/Bundle.properties | 2 + src/org/jent/checksmtp/Bundle_ja_JP.properties | 114 +++++++++++----------- src/org/jent/checksmtp/Processer.java | 37 ++++++- 7 files changed, 256 insertions(+), 117 deletions(-) diff --git a/nbproject/project.properties b/nbproject/project.properties index 9a02b36..b620c0e 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -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 diff --git a/src/org/jent/checksmtp/ApplicationProperties.java b/src/org/jent/checksmtp/ApplicationProperties.java index a227e5f..faee9c0 100644 --- a/src/org/jent/checksmtp/ApplicationProperties.java +++ b/src/org/jent/checksmtp/ApplicationProperties.java @@ -15,9 +15,11 @@ import java.util.Properties; *

Properties

*
*
-.port
Service port number. (Default:8725) + *
-.ssl
Service port use SSL. (Default:false) //Not use yet. *
-.enableRemoteConnect
Permit connect from remote host. (Default:false) *
-.serverHost
STMP Server host name. (Default:mail) *
-.serverPort
STMP Server port. (Default:25) + *
-.serverSSL
SMTP Server port use SSL. (Default:false) *
-.confirm.timeout
Confirm auto push OK timeput (Default:0 = forever) *
-.ladp
If "true" use LDAP search. (Default:false) *
-.ldap.providerUrl
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(); } diff --git a/src/org/jent/checksmtp/ApplicationUI.form b/src/org/jent/checksmtp/ApplicationUI.form index 9cca4bb..9efebf6 100644 --- a/src/org/jent/checksmtp/ApplicationUI.form +++ b/src/org/jent/checksmtp/ApplicationUI.form @@ -1,4 +1,4 @@ - +
@@ -18,6 +18,8 @@ + + @@ -32,13 +34,13 @@ - + - + @@ -81,31 +83,35 @@ - - - - - + + + + + + + + + + + + + + - - - - - - - + - + - + + + - @@ -122,10 +128,11 @@ + + - - + @@ -172,6 +179,9 @@ + + + @@ -243,6 +253,19 @@ + + + + + + + + + + + + + @@ -273,10 +296,10 @@ - - + + - + @@ -312,7 +335,7 @@ - + @@ -444,7 +467,7 @@ - + @@ -458,7 +481,7 @@ - + diff --git a/src/org/jent/checksmtp/ApplicationUI.java b/src/org/jent/checksmtp/ApplicationUI.java index 62c1aa4..f12b51a 100644 --- a/src/org/jent/checksmtp/ApplicationUI.java +++ b/src/org/jent/checksmtp/ApplicationUI.java @@ -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. */ - // //GEN-BEGIN:initComponents + // //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(); }// //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; diff --git a/src/org/jent/checksmtp/Bundle.properties b/src/org/jent/checksmtp/Bundle.properties index 688f625..4ee9f93 100644 --- a/src/org/jent/checksmtp/Bundle.properties +++ b/src/org/jent/checksmtp/Bundle.properties @@ -21,6 +21,8 @@ ApplicationUI.jPanelLDAP.TabConstraints.tabTitle=LDAP ApplicationUI.jTextFieldServerPort.toolTipText=Mail server port number. ApplicationUI.jTextFieldServerPort.text=25 +ApplicationUI.jCheckBoxServerSSL.text=SSL +ApplicationUI.jCheckBoxServerSSL.toolTipText=Use SSL on mail server connection. ApplicationUI.jLabel6.text=Attribute\: diff --git a/src/org/jent/checksmtp/Bundle_ja_JP.properties b/src/org/jent/checksmtp/Bundle_ja_JP.properties index 6579686..5baf8a5 100644 --- a/src/org/jent/checksmtp/Bundle_ja_JP.properties +++ b/src/org/jent/checksmtp/Bundle_ja_JP.properties @@ -1,130 +1,132 @@ # Sample ResourceBundle properties file -ApplicationUI.jPanelMail.TabConstraints.tabTitle=\u30E1\u30FC\u30EB +ApplicationUI.jPanelMail.TabConstraints.tabTitle=\u30e1\u30fc\u30eb -ApplicationUI.jCheckBoxLdap.toolTipText=\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3068LDAP\u306E\u8A2D\u5B9A\u304C\u6709\u52B9\u306B\u306A\u308B\u3002 +ApplicationUI.jCheckBoxLdap.toolTipText=\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3068LDAP\u306e\u8a2d\u5b9a\u304c\u6709\u52b9\u306b\u306a\u308b\u3002 -ApplicationUI.jCheckBoxLdap.text=LDAP\u691C\u7D22 +ApplicationUI.jCheckBoxLdap.text=LDAP\u691c\u7d22 -ApplicationUI.jTextFieldServerHost.toolTipText=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u306E\u30DB\u30B9\u30C8\u540D\u304BIP\u30A2\u30C9\u30EC\u30B9 +ApplicationUI.jTextFieldServerHost.toolTipText=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u306e\u30db\u30b9\u30c8\u540d\u304bIP\u30a2\u30c9\u30ec\u30b9 ApplicationUI.jTextFieldServerHost.text=mail -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 +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 -ApplicationUI.jCheckBoxIsSjis.text=SJIS\u3067\u901A\u4FE1 +ApplicationUI.jCheckBoxIsSjis.text=SJIS\u3067\u901a\u4fe1 -ApplicationUI.jLabel1.text=\u53D7\u4FE1\u30DD\u30FC\u30C8\: +ApplicationUI.jLabel1.text=\u53d7\u4fe1\u30dd\u30fc\u30c8\: ApplicationUI.jPanelLDAP.TabConstraints.tabTitle=LDAP -ApplicationUI.jTextFieldServerPort.toolTipText=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\u306E\u30DD\u30FC\u30C8\u756A\u53F7 +ApplicationUI.jTextFieldServerPort.toolTipText=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u306e\u30dd\u30fc\u30c8\u756a\u53f7 ApplicationUI.jTextFieldServerPort.text=25 -ApplicationUI.jLabel6.text=LDAP\u5C5E\u6027\: +ApplicationUI.jLabel6.text=LDAP\u5c5e\u6027\: -ApplicationUI.jButtonQuit.text=\u7D42\u4E86 +ApplicationUI.jButtonQuit.text=\u7d42\u4e86 ApplicationUI.jLabel4.text=URL\: -ApplicationUI.jTextFieldProviderUrl.toolTipText=LDAP\u30B5\u30FC\u30D0\u306EURL +ApplicationUI.jTextFieldProviderUrl.toolTipText=LDAP\u30b5\u30fc\u30d0\u306eURL ApplicationUI.jTextFieldProviderUrl.text=ldap\://localhost\:389/ -ApplicationUI.jLabel2.text=\u30E1\u30FC\u30EB\u30B5\u30FC\u30D0\: +ApplicationUI.jLabel2.text=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\: -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) +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) -ApplicationUI.jCheckBoxEnableRemoteConnect.text=\u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u8A31\u53EF +ApplicationUI.jCheckBoxEnableRemoteConnect.text=\u30ea\u30e2\u30fc\u30c8\u63a5\u7d9a\u8a31\u53ef -ApplicationUI.jButtonCancel.text=\u4E2D\u6B62 +ApplicationUI.jButtonCancel.text=\u4e2d\u6b62 -ApplicationUI.jLabel3.text=\u30DD\u30FC\u30C8\: +ApplicationUI.jLabel3.text=\u30dd\u30fc\u30c8\: -ApplicationUI.title=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D7\u30ED\u30D1\u30C6\u30A3 +ApplicationUI.title=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30d7\u30ed\u30d1\u30c6\u30a3 ApplicationUI.jLabel5.text=Root DN\: -ApplicationUI.jTextFieldBaseDn.toolTipText=LDAP\u3067\u691C\u7D22\u3092\u958B\u59CB\u3059\u308BDN +ApplicationUI.jTextFieldBaseDn.toolTipText=LDAP\u3067\u691c\u7d22\u3092\u958b\u59cb\u3059\u308bDN ApplicationUI.jTextFieldBaseDn.text=C\=JP ApplicationUI.jButtonOK.text=OK -ApplicationUI.jTextFieldAttribute.toolTipText=\u8868\u793A\u3059\u308BLDAP\u5C5E\u6027 \u4F8B\: cn title;lang-ja-jp +ApplicationUI.jTextFieldAttribute.toolTipText=\u8868\u793a\u3059\u308bLDAP\u5c5e\u6027 \u4f8b\: cn title;lang-ja-jp ApplicationUI.jTextFieldAttribute.text=cn -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 +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 ApplicationUI.jTextFieldReceiverPort.text=8725 -MessageDialogUI.jButtonDetail.text=\u8A73\u7D30<< +MessageDialogUI.jButtonDetail.text=\u8a73\u7d30<< -ToListUI.title=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D +ToListUI.title=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d -ToListUI.jButtonCancel.text=\u4E2D\u6B62 +ToListUI.jButtonCancel.text=\u4e2d\u6b62 -ToListUI.jButtonOK.text=\u9001\u4FE1 +ToListUI.jButtonOK.text=\u9001\u4fe1 -MessageDialogUI.jButtonOK.text=\u9589\u3058\u308B +MessageDialogUI.jButtonOK.text=\u9589\u3058\u308b -MessageDialogUI.jButtonDetail.text.open=\u8A73\u7D30>> +MessageDialogUI.jButtonDetail.text.open=\u8a73\u7d30>> -MessageDialogUI.title.Error_mdc=\u30A8\u30E9\u30FC \u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0 +MessageDialogUI.title.Error_mdc=\u30a8\u30e9\u30fc \u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0 -MessageDialogUI.title.Information_mdc=\u60C5\u5831 \u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0 +MessageDialogUI.title.Information_mdc=\u60c5\u5831 \u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0 -MessageDialogUI.title.Warning_mdc=\u8B66\u544A \u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u30D7\u30ED\u30B0\u30E9\u30E0 -ApplicationUI.jButtonQuit.toolTipText=\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002 +MessageDialogUI.title.Warning_mdc=\u8b66\u544a \u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u30d7\u30ed\u30b0\u30e9\u30e0 +ApplicationUI.jButtonQuit.toolTipText=\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d42\u4e86\u3057\u307e\u3059\u3002 -ApplicationUI.jButtonOK.toolTipText=\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002 +ApplicationUI.jButtonOK.toolTipText=\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u3002 -ApplicationUI.jButtonCancel.toolTipText=\u4ECA\u56DE\u306E\u8A2D\u5B9A\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059\u3002 +ApplicationUI.jButtonCancel.toolTipText=\u4eca\u56de\u306e\u8a2d\u5b9a\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3059\u3002 -ApplicationUI.jLabelProgramName.text=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0 +ApplicationUI.jLabelProgramName.text=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0 -ApplicationUI.jPanelAbout.TabConstraints.tabTitle=\u60C5\u5831 +ApplicationUI.jPanelAbout.TabConstraints.tabTitle=\u60c5\u5831 -ApplicationUI.Port_number_is_integer_from_1_to_65535.=\u30DD\u30FC\u30C8\u756A\u53F7\u306F1\u301C65535\u307E\u3067\u3067\u3059\u3002 +ApplicationUI.Port_number_is_integer_from_1_to_65535.=\u30dd\u30fc\u30c8\u756a\u53f7\u306f1\u301c65535\u307e\u3067\u3067\u3059\u3002 -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 +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 -ApplicationUI.error.Out_of_range.=\u7BC4\u56F2\u304C\u4E0D\u6B63\u3067\u3059\u3002 +ApplicationUI.error.Out_of_range.=\u7bc4\u56f2\u304c\u4e0d\u6b63\u3067\u3059\u3002 -ApplicationUI.shortTitle=\u30E1\u30FC\u30EB\u9001\u4FE1\u5148\u78BA\u8A8D\u30D7\u30ED\u30B0\u30E9\u30E0 +ApplicationUI.shortTitle=\u30e1\u30fc\u30eb\u9001\u4fe1\u5148\u78ba\u8a8d\u30d7\u30ed\u30b0\u30e9\u30e0 -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 +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 -LDAPSearch.error.LDAPSearch_init_error.=LDAP\u691C\u7D22\u306E\u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +LDAPSearch.error.LDAPSearch_init_error.=LDAP\u691c\u7d22\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -LDAPSearch.error.LDAP_Search_Error.=LDAP\u691C\u7D22\u3067\u30A8\u30E9\u30FC +LDAPSearch.error.LDAP_Search_Error.=LDAP\u691c\u7d22\u3067\u30a8\u30e9\u30fc -LDAPSearch.error.LDAP_Unexpected_Error.=LDAP\u3067\u4E88\u60F3\u5916\u306E\u30A8\u30E9\u30FC +LDAPSearch.error.LDAP_Unexpected_Error.=LDAP\u3067\u4e88\u60f3\u5916\u306e\u30a8\u30e9\u30fc -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 +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 -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 +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 -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 +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 -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 +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 -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 +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 -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 +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 -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 +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 -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 +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 -ApplicationUI.jLabel7.text=\u6642\u9650\u5F0F\u9001\u4FE1\u78BA\u8A8D\u5F85\u3061\u6642\u9593\: +ApplicationUI.jLabel7.text=\u6642\u9650\u5f0f\u9001\u4fe1\u78ba\u8a8d\u5f85\u3061\u6642\u9593\: -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) +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) -ApplicationUI.jPanelMail.TabConstraints\ tabToolTip=\u30E1\u30FC\u30EB\u95A2\u4FC2\u306E\u8A2D\u5B9A +ApplicationUI.jPanelMail.TabConstraints\ tabToolTip=\u30e1\u30fc\u30eb\u95a2\u4fc2\u306e\u8a2d\u5b9a -ApplicationUI.jPanelLDAP.TabConstraints\ tabToolTip=LDAP\u95A2\u4FC2\u306E\u8A2D\u5B9A +ApplicationUI.jPanelLDAP.TabConstraints\ tabToolTip=LDAP\u95a2\u4fc2\u306e\u8a2d\u5b9a -ApplicationUI.jPanelAbout.TabConstraints\ tabToolTip=\u3053\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u306B\u3064\u3044\u3066 +ApplicationUI.jPanelAbout.TabConstraints\ tabToolTip=\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3064\u3044\u3066 -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 +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 +ApplicationUI.jCheckBoxServerSSL.toolTipText=\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u3068\u306e\u63a5\u7d9a\u306bSSL\u3092\u5229\u7528\u3059\u308b\u3002 +ApplicationUI.jCheckBoxServerSSL.text=SSL\u6709\u52b9 diff --git a/src/org/jent/checksmtp/Processer.java b/src/org/jent/checksmtp/Processer.java index 1f6c28e..2faec55 100644 --- a/src/org/jent/checksmtp/Processer.java +++ b/src/org/jent/checksmtp/Processer.java @@ -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(); -- 2.11.0