views:

341

answers:

2

I'm trying to connect to james server using imap protocol, but I'm getting following exception:

Exception in thread "main" javax.mail.MessagingException: Network is unreachable: connect;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:611)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)
at mail.main(mail.java:112)
Caused by: java.net.SocketException: Network is unreachable: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(PlainSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:267)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:277)
at com.sun.mail.iap.Protocol.<init>(Protocol.java:107)
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:103)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:578)
... 3 more

The James Server is already running, I don't get the reason of the above exception. Is this because James doesn't support this protocol or there any other reason?

Here's the source code of Javamail application, which is trying to connect to James Server:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class mail{

public static void main(String[] argts){


        try {


            Properties props=new Properties();

      props.put("mail.host", "127.0.0.1 ");
      props.put("mail.smtp.auth","true");

  Session  session = Session.getInstance(props, new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("blue", "blue");
}
});




int Spam=0;
Store store=session.getStore("imap");
store.connect("localhost", "red", "red");
Folder folder=store.getFolder("IMAPFolder");
Folder folder1=store.getFolder("Spam");
boolean b=folder1.create(Spam);
System.out.println(b);  

        } catch (Throwable t) {
           t.printStackTrace();
        }


        }

    }

}

+2  A: 

A quick check is to see if you can talk to your IMAP server simply by using telnet:

telnet localhost 143

and if this doesn't connect, then James isn't publishing an IMAP connection (assuming the standard IMAP port).

I see from the below that you're using James 2.x. This link suggests that IMAP isn't supported.

Brian Agnew
It's not getting connect. What do I have to do let the application connect to James through IMAP protocol? I'm using James-2.3.2 version.
Dusk
A: 

Looks more like a network configuration error (can you ping it) Check that 127.0.0.1 is setup correctly (and get rid of that space)

objects