0

the problem is that despite having set the data I believe correctly I get the error in the title.

It is usually an error due to wrong input parameters, but both the host and the port are correct. I don't really understand where I'm wrong.

The code is as follows:

public void login(String host, String username, String password)
            throws Exception {
        URLName url = new URLName(protocol, host, 995, file, username, password);
        if (session == null) {
            Properties props = null;
            try {
                            props = System.getProperties();
                            props.setProperty("mail.store.protocol", "pop3s");
                            props.setProperty("mail.pop3s.ssl.enable", "true");
                            props.setProperty("mail.pop3s.localport", "995");
                            props.setProperty("mail.pop3s.host", "pop3s.pec.aruba.it");
            } catch (SecurityException sex) {
                            props = new Properties();
            }
            session = Session.getDefaultInstance(props
                                ,new javax.mail.Authenticator(){public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication(username,password);}}
);
        }
        store = session.getStore("pop3s");
        store.connect(host, username, password);
        folder = store.getFolder(url);
        folder.open(Folder.READ_ONLY);
    }

I expected that the connection works. instead I get the following error message:

GRAVE: null
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: pop3s.pec.aruba.it, 995; timeout -1;
  nested exception is:
    java.net.ConnectException: Connection refused: connect
    at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:211)
    at javax.mail.Service.connect(Service.java:366)
    at javax.mail.Service.connect(Service.java:246)
    at sorellecongiusnc.mavgestipan.EmailBox.login(EmailBox.java:64)
    at sorellecongiusnc.mavgestipan.JFrameStart.jButton5ActionPerformed(JFrameStart.java:1234)
    at sorellecongiusnc.mavgestipan.JFrameStart.access$200(JFrameStart.java:72)
    at sorellecongiusnc.mavgestipan.JFrameStart$3.actionPerformed(JFrameStart.java:641)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:331)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
    at com.sun.mail.pop3.Protocol.<init>(Protocol.java:112)
    at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:265)
    at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:207)
    ... 42 more

Any suggestions?

1 Answers1

0

You are setting property mail.pop3s.localport to a value of 995. This is setting the port that the application binds to locally to create a connection to the server rather than selecting the port on the server to connect to. That is probably not what you want. Try changing it to mail.pop3s.port as that will be setting the port for the mail server you are connecting to.

Jaawn
  • 63
  • 8
  • I tried but the result is the same: the connection is refused. Can be the problem in authentication? in the protocols? I also opened ports in the router firewall but nothing ... – Daniele Gessa May 29 '19 at 06:49
  • Although I don't have an account at that host, I tried to connect anyway but I get an "Authentication failed" message which means I am at least connecting. I would double check the values of the protocol, host, and file variables as those are set outside your code example and make sure they match what you expect (e.g. the value of "host" should probably be "pop3s.pec.aruba.it"). If you still get the issue, maybe you're getting through but the server is dropping the connection. You may need to ask the provider if you need to enable a setting in your account or something. – Jaawn May 31 '19 at 01:06
  • I finally found the problem: avast blocked the connection in the pop3s port by not recognizing the request probably. By removing the check on that option everything works correctly. Thank you all for your help. – Daniele Gessa May 31 '19 at 07:59