SSLSocket Exception in javamail

N

news

I want to connect a email server with ssl security. I am using the attched
code, but I get the following exception:
javax.mail.MessagingException: DummySSLSocketFactory;
nested exception is:
java.net.SocketException: DummySSLSocketFactory
at
com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:335)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)
at
com.geniewave.mail.slave.server.SimpleReceiver.receive(SimpleReceiver.java:5
5)
at
com.geniewave.mail.slave.server.SimpleReceiver.main(SimpleReceiver.java:26)

Could someone help me with that? Thank you very much. Here is the code


private static void setProperties(Properties props)
{
Security.addProvider( new com.sun.net.ssl.internal.ssl.Provider());
Security.setProperty( "ssl.SocketFactory.provider",
"DummySSLSocketFactory");
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// IMAP provider
props.setProperty( "mail.imap.socketFactory.class", SSL_FACTORY);
props.setProperty( "mail.imap.socketFactory.fallback", "false");
props.setProperty( "mail.imap.port", "993");
props.setProperty( "mail.imap.socketFactory.port", "993");
}

public static void receive(String popServer, String popUser
, String popPassword)
{
Store store=null;
Folder folder=null;
try
{
// -- Get hold of the default session --
Properties props = System.getProperties();
setProperties(props);
props.put("mail.debug","true");
Session session = Session.getInstance(props, null);

// -- Get hold of a POP3 message store, and connect to it --
store = session.getStore("imap");
store.connect(popServer, popUser, popPassword);

// -- ...and its INBOX --
folder = store.getFolder("INBOX");
if (folder == null) throw new Exception("No POP3 INBOX");

// -- Open the folder for read only --
folder.open(Folder.READ_ONLY);
Message[] msg = folder.getMessages();
int count = folder.getMessageCount();
for (int i = 0; i < count; i++)
{
String[] froms = msg.getHeader("From");
System.out.println(( (InternetAddress)
msg.getFrom()[0]).getAddress());
String to = "";
Address[] tos = msg.getRecipients(Message.RecipientType.TO);
for(int j=0;j<tos.length; j++)
{
to += ((InternetAddress)(tos[j])).getAddress();
}


System.out.println(((InternetAddress)(msg.getRecipients(Message.Recipient
Type.TO))[0]).getAddress());;
printMessage(msg);
}

}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
// -- Close down nicely --
try
{
if (folder!=null) folder.close(false);
if (store!=null) store.close();
}
catch (Exception ex2) {ex2.printStackTrace();}
}
}
 
H

hzhao2

** Due to U.S. export restrictions, the JSSE implementation in Sun
Microsystems' Java 2 SDK, v 1.4 does not allow replacement of the
default SSLSocketFactory or SSLServerSocketFactory implementations.
Please see the note on pluggability in the Introduction. If you are
using a different JSSE implementation that allows alternate SSL/TLS
implementation, you do so by setting the specified security
properties.


news said:
I want to connect a email server with ssl security. I am using the attched
code, but I get the following exception:
javax.mail.MessagingException: DummySSLSocketFactory;
nested exception is:
java.net.SocketException: DummySSLSocketFactory
at
com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:335)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)
at
com.geniewave.mail.slave.server.SimpleReceiver.receive(SimpleReceiver.java:5
5)
at
com.geniewave.mail.slave.server.SimpleReceiver.main(SimpleReceiver.java:26)

Could someone help me with that? Thank you very much. Here is the code


private static void setProperties(Properties props)
{
Security.addProvider( new com.sun.net.ssl.internal.ssl.Provider());
Security.setProperty( "ssl.SocketFactory.provider",
"DummySSLSocketFactory");
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// IMAP provider
props.setProperty( "mail.imap.socketFactory.class", SSL_FACTORY);
props.setProperty( "mail.imap.socketFactory.fallback", "false");
props.setProperty( "mail.imap.port", "993");
props.setProperty( "mail.imap.socketFactory.port", "993");
}

public static void receive(String popServer, String popUser
, String popPassword)
{
Store store=null;
Folder folder=null;
try
{
// -- Get hold of the default session --
Properties props = System.getProperties();
setProperties(props);
props.put("mail.debug","true");
Session session = Session.getInstance(props, null);

// -- Get hold of a POP3 message store, and connect to it --
store = session.getStore("imap");
store.connect(popServer, popUser, popPassword);

// -- ...and its INBOX --
folder = store.getFolder("INBOX");
if (folder == null) throw new Exception("No POP3 INBOX");

// -- Open the folder for read only --
folder.open(Folder.READ_ONLY);
Message[] msg = folder.getMessages();
int count = folder.getMessageCount();
for (int i = 0; i < count; i++)
{
String[] froms = msg.getHeader("From");
System.out.println(( (InternetAddress)
msg.getFrom()[0]).getAddress());
String to = "";
Address[] tos = msg.getRecipients(Message.RecipientType.TO);
for(int j=0;j<tos.length; j++)
{
to += ((InternetAddress)(tos[j])).getAddress();
}


System.out.println(((InternetAddress)(msg.getRecipients(Message.Recipient
Type.TO))[0]).getAddress());;
printMessage(msg);
}

}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
// -- Close down nicely --
try
{
if (folder!=null) folder.close(false);
if (store!=null) store.close();
}
catch (Exception ex2) {ex2.printStackTrace();}
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,962
Messages
2,570,134
Members
46,690
Latest member
MacGyver

Latest Threads

Top