【问题标题】:ConnectException: Connection refused: connectConnectException:连接被拒绝:连接
【发布时间】:2019-05-28 17:00:06
【问题描述】:

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

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

代码如下:

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

有什么建议吗?

【问题讨论】:

    标签: java jakarta-mail aruba


    【解决方案1】:

    您将属性 mail.pop3s.localport 设置为值 995。这是设置应用程序绑定到的端口本地以创建到服务器的连接,而不是选择服务器上的端口连接至。那可能不是你想要的。尝试将其更改为mail.pop3s.port,因为这将为您要连接的邮件服务器设置端口。

    【讨论】:

    • 我试过但结果是一样的:连接被拒绝。可能是身份验证的问题吗?在协议中?我还在路由器防火墙中打开了端口,但什么都没有...
    • 虽然我在该主机上没有帐户,但我还是尝试连接,但我收到“身份验证失败”消息,这意味着我至少正在连接。我会仔细检查协议、主机和文件变量的值,因为它们是在您的代码示例之外设置的,并确保它们符合您的预期(例如,“主机”的值可能应该是“pop3s.pec.aruba.it ”)。如果您仍然遇到问题,也许您正在通过但服务器正在断开连接。如果您需要在您的帐户中启用设置或其他什么,您可能需要询问提供商。
    • 我终于找到了问题:avast 可能由于无法识别请求而阻塞了pop3s 端口中的连接。通过取消对该选项的检查,一切正常。谢谢大家的帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2021-10-04
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多