0

次のコードを使用して、Javaアプリケーションから電子メールを送信しています。私のコンピューターでは、2台目のコンピューターでも正常に動作しますが、同じ接続設定を使用しているにもかかわらず、(同じネットワーク内の)別のコンピューターでは動作しません。

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

1台のコンピューターで動作しない理由は何でしょうか。

4

4 に答える 4

0

どのポートが使用されているかを確認する必要があります。おそらく、それはあなたのマシンで許可されているポートですが、他のポートでは許可されていません。

于 2011-12-29T17:50:44.697 に答える
0

コードは、セキュリティマネージャーが有効になっているアプリケーションサーバーで実行されていますか?アプリケーションには、Javaランタイムからそのホストに接続するための許可が与えられていない可能性があります。

于 2011-12-29T19:55:13.683 に答える
0

これはネットワークの問題か、アクセス許可の問題である可能性があります(管理者としてのユーザー権限を変更してください)

システムがメールサーバーに接続できるかどうかを確認します

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

于 2011-12-29T18:26:30.823 に答える
0

NortonAntiVirusをアンインストールすることで問題が解決しました

于 2013-05-06T14:47:53.257 に答える