0

问题是尽管设置了我认为正确的数据,但我在标题中得到了错误。

通常是由于输入参数错误导致的错误,但主机和端口都正确。我真的不明白我错在哪里。

代码如下:

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);
    }

我希望连接有效。相反,我收到以下错误消息:

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

有什么建议么?

4

1 回答 1

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.

于 2019-05-28T17:27:01.613 回答