可以使用webmail,但不能通过javax.mail发送

可以使用webmail,但不能通过javax.mail发送,java,jakarta-mail,Java,Jakarta Mail,我目前有一个邮件服务器正在运行。 我可以通过mywebsite.com/roundcube登录我的web邮件客户端/ 网络邮件允许我适当地发送和接收电子邮件。日志显示所有的邮件进出,一切正常。我已经从这里发送到我的gmail帐户,然后再发送回来 然而,我真正想做的是使用javaxmail从java发送一些邮件。这样我就可以自动化电子邮件了 我尝试了如下配置: final String username = "myusername"; final String password =

我目前有一个邮件服务器正在运行。 我可以通过mywebsite.com/roundcube登录我的web邮件客户端/

网络邮件允许我适当地发送和接收电子邮件。日志显示所有的邮件进出,一切正常。我已经从这里发送到我的gmail帐户,然后再发送回来

然而,我真正想做的是使用javaxmail从java发送一些邮件。这样我就可以自动化电子邮件了

我尝试了如下配置:

    final String username = "myusername";
    final String password = "mypassword";

Properties props = new Properties();
        props.put("mail.smtp.host", "localhost");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "25");
        props.put("mail.debug","true");

        // Get the Session object.
        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });
        session.setDebug(true);
当我通过

Transport.send(message);
我得到以下输出:

DEBUG: JavaMail version 1.5.0-b01
DEBUG: setDebug: JavaMail version 1.5.0-b01
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
  nested exception is:
    java.net.SocketException: Permission denied: connect
我可以通过端口25上的localhost远程登录到box

想法

编辑:Netstat信息

myname@mybox:~/Development$ netstat -plnt | grep 25
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      -
编辑2: 我正在使用Postfix+Courier,并基于

默认情况下,请尝试设置
-Djava.net.preferIPv4Stack=true
JVM属性以强制应用程序使用IPv4套接字进行通信。

默认情况下,Java首选IPv6,尝试设置
-Djava.net.preferIPv4Stack=true
JVM属性,以强制应用程序使用IPv4套接字进行通信。

netstat-tulpn的输出
netstat-tulpn的每个请求添加的netstat信息
netstat-tulpn的每个请求添加的netstat信息作为修复。非常感谢你!这就是解决办法。非常感谢你!