0

我正在使用以下代码从 Java 应用程序发送电子邮件。在我的计算机上它工作正常,在第二台计算机上也可以,但在另一台计算机(在同一网络中)上却不行,尽管我们使用相同的连接设置。

public void connect() throws MessagingException
{
    Authenticator auth = new Authenticator(){ 
        @Override
        protected PasswordAuthentication getPasswordAuthentication()
        {
            return new PasswordAuthentication(smtpUser, smtpPassword);
        }
    };
    Properties props = new Properties();
    props.put("mail.smtp.host", this.smtpServer);
    props.put("mail.smtp.auth", true); 

    session = Session.getDefaultInstance(props, auth);

    store = session.getStore(this.protocol);
    store.connect(this.mailboxServer, this.user, this.password);  //<-- exception is thrown here

}

这是我得到的例外:

javax.mail.MessagingException: connect failed; 
nested exception is: 
    java.net.SocketException: Permission denied: connect
    at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:161)
    at javax.mail.Service.connect(Service.java:288)
    at javax.mail.Service.connect(Service.java:169)
    at com.myapp.MailboxConnection.connect(MailboxConnection.java:66)
caused by: java.net.SocketException: Permission denied: connect

它不能在一台计算机上运行的原因可能是什么?

4

4 回答 4

0

我认为这可能是网络问题或权限问题(将您的用户权限更改为管理员)

检查您的系统是否能够连接到邮件服务器

ping mailservername/mailserverip 例如:ping www.gmail.com/192.168.1.98

于 2011-12-29T18:26:30.823 回答
0

您应该检查使用了哪个端口,也许它是您机器上允许的端口,但不是另一个。

于 2011-12-29T17:50:44.697 回答
0

您的代码是否在启用了安全管理器的应用程序服务器中运行?Java 运行时可能未授予您的应用程序连接到该主机的权限。

于 2011-12-29T19:55:13.683 回答
0

通过卸载 Norton AntiVirus 解决的问题

于 2013-05-06T14:47:53.257 回答